VRML与Javascript和VBscript交互的实例

来源:互联网 发布:中国农大网络 编辑:程序博客网 时间:2024/06/08 11:58

 现将代码贴出,共勉!

 

HTML部分:=====================================================

<html>
<head>
<script language="VBscript">
<!--
function M_b()
 set M_e=Scene.Engine
 M_e.Nodes("MyScript").Fields("nodestring")="Shape {geometry Box{}}"
 M_e.Nodes("MyScript").Fields("kk")=TRUE
end function
function M_s()
 set M_e=Scene.Engine
 M_e.Nodes("MyScript").Fields("nodestring")="Shape {geometry Extrusion{}}"
 M_e.Nodes("MyScript").Fields("kk")=TRUE
end function
!-->
</script>
<script language="javascript">
 function bd() {
  var oo = Scene.Engine;
  oo.Nodes("MyScript").Fields("nodestring")="Shape {geometry Box{}}";
  oo.Nodes("MyScript").Fields("kk")=true;
 }
 function bx(){
  var oo = Scene.Engine;
  oo.Nodes("MyScript").Fields("nodestring")="Shape {geometry Extrusion{}}";
  oo.Nodes("MyScript").Fields("kk")=true;
 }
</script>
</head>
<body>
<OBJECT id="Scene"
CLASSID="CLSID:86A88967-7A20-11d2-8EDA-00600818EDB1" WIDTH="300" HEIGHT="300">
<PARAM NAME="Scene" value="box.wrl">
</OBJECT>
<input type=button value="变大" onClick="bd()">
<input type=button value="变小" onClick="bx()"><br>
</body>
</html>

 

box.wrl部分===========================================================

#VRML V2.0 utf8

DirectionalLight {
 ambientIntensity .5
 intensity .2
}
NavigationInfo {
 type "EXAMINE"
}
DEF Transfm Transform {
 translation -4 0 -4
 children [
 Shape {
  geometry Box{}
 }]
}
DEF MyScript Script {
 directOutput TRUE
 eventIn SFBool kk
 field SFNode node USE Transfm
 field SFString nodestring ""
 url "VRMLSCRIPT:
 function kk(){
  if(nodestring=='')
  {
   nodestring='Shape {'
   'geometry Extrusion {'
   '}'
   '}' ;
  }
  node.children=Browser.createVrmlFromString(nodestring);
 }
 "
}