Difference between revisions of "Script-and-inputOutputField.x3d"

From Web3D.org
Jump to: navigation, search
 
Line 12: Line 12:
 
       <field accessType='inputOutput' name='foo' type='SFFloat' value='5'/>
 
       <field accessType='inputOutput' name='foo' type='SFFloat' value='5'/>
 
       <field accessType='inputOnly' name='readFoo' type='SFTime'/><![CDATA[ecmascript:
 
       <field accessType='inputOnly' name='readFoo' type='SFTime'/><![CDATA[ecmascript:
 
 
   //-----------------------------
 
   //-----------------------------
 
   function initialize (value) {
 
   function initialize (value) {
Line 18: Line 17:
 
     text.string[0] = line;
 
     text.string[0] = line;
 
   }
 
   }
 
 
   //-----------------------------
 
   //-----------------------------
 
   function readFoo (value) {     
 
   function readFoo (value) {     
 
   text.string[1] = 'readFoo called: TRUE, value: ' + foo;
 
   text.string[1] = 'readFoo called: TRUE, value: ' + foo;
 
   }       
 
   }       
 
 
   //-----------------------------
 
   //-----------------------------
 
   function foo (value) {     
 
   function foo (value) {     
 
   text.string[3] = 'foo function called: TRUE; ' + value;
 
   text.string[3] = 'foo function called: TRUE; ' + value;
 
   }       
 
   }       
 
 
   //-----------------------------
 
   //-----------------------------
 
   function set_foo (value) {     
 
   function set_foo (value) {     
 
   text.string[4] = 'set_foo function called: TRUE; ' + value;
 
   text.string[4] = 'set_foo function called: TRUE; ' + value;
 
   }       
 
   }       
 
 
   //-----------------------------
 
   //-----------------------------
 
   function foo_changed (value) {     
 
   function foo_changed (value) {     
Line 46: Line 41:
 
       </field>
 
       </field>
 
       <field accessType='inputOnly' name='fooCatcher' type='SFFloat'/><![CDATA[ecmascript:
 
       <field accessType='inputOnly' name='fooCatcher' type='SFFloat'/><![CDATA[ecmascript:
 
 
   //-----------------------
 
   //-----------------------
 
   function fooCatcher (value) {
 
   function fooCatcher (value) {
 
     text.string[2] = 'Foo value send: TRUE; value: ' + value;
 
     text.string[2] = 'Foo value send: TRUE; value: ' + value;
 
   }
 
   }
 
 
   ]]>
 
   ]]>
 
     </Script>
 
     </Script>

Revision as of 21:06, 6 August 2008

<?xml version="1.0" encoding="UTF-8"?> <X3D profile='Full' >

 <Scene DEF='scene'>
   <Viewpoint position='20 0 40'/>
   <Shape>
     <Text DEF='text' string='"Initialize called: FALSE" "readFoo() called: FALSE" "foo value send: FALSE" "foo function called: FALSE" "set_foo function called: FALSE" "foo_changed function called: FALSE"'/>
   </Shape>
   <Script DEF='s1' directOutput='true'>
     <field accessType='initializeOnly' name='text' type='SFNode'>
       <Text USE='text'/>
     </field>
     <field accessType='inputOutput' name='foo' type='SFFloat' value='5'/>
     <field accessType='inputOnly' name='readFoo' type='SFTime'/><![CDATA[ecmascript:
 //-----------------------------
 function initialize (value) {
   line = 'Initialized called: TRUE; foo value: ' + foo;
   text.string[0] = line;
  }
 //-----------------------------
 function readFoo (value) {     
  text.string[1] = 'readFoo called: TRUE, value: ' + foo;
 }       
 //-----------------------------
 function foo (value) {     
  text.string[3] = 'foo function called: TRUE; ' + value;
 }       
 //-----------------------------
 function set_foo (value) {     
  text.string[4] = 'set_foo function called: TRUE; ' + value;
 }       
 //-----------------------------
 function foo_changed (value) {     
  text.string[5] = 'foo_changed function called: TRUE; ' + value;
 }       
 ]]>
   </Script>
   <TimeSensor DEF='ts' cycleInterval='3' loop='true'/>
   <Script DEF='s2' directOutput='true'>
     <field accessType='initializeOnly' name='text' type='SFNode'>
       <Text USE='text'/>
     </field>
     <field accessType='inputOnly' name='fooCatcher' type='SFFloat'/><![CDATA[ecmascript:
 //-----------------------
 function fooCatcher (value) {
   text.string[2] = 'Foo value send: TRUE; value: ' + value;
 }
 ]]>
   </Script>
   <ROUTE fromNode='ts' fromField='fraction_changed' toNode='s1' toField='set_foo'/>
   <ROUTE fromNode='ts' fromField='cycleTime' toNode='s1' toField='readFoo'/>
   <ROUTE fromNode='s1' fromField='foo_changed' toNode='s2' toField='fooCatcher'/>
 </Scene>

</X3D>