X3D Model Documentation: ECMAScriptAnnexExample2.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2 
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
  3  <X3D profile='Immersive' version='3.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'>
  4       <head>
  5            <meta name='titlecontent='ECMAScriptAnnexExample2.x3d'/>
  6            <meta name='creatorcontent='Don Brutzman'/>
  7            <meta name='createdcontent='16 January 2000'/>
  8            <meta name='modifiedcontent='20 October 2019'/>
  9            <meta name='descriptioncontent='A simple script example with no visible rendering results.'/>
 10            <meta name=' error content=" VRML97 translation has extraneous 'url [ ]' output. "/>
 11            <meta name='identifiercontent='https://www.web3d.org/x3d/content/examples/Basic/development/ECMAScriptAnnexExample2.x3d'/>
 12            <meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
 13            <meta name='licensecontent='../license.html'/>
 14       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->

<!-- to top Index for DEF nodes: Example_2, ROOT_TRANSFORM
-->
 15       <Scene>
 16            <WorldInfo info=' "Example 2, VRML 97 Annex C, ECMAScript Scripting Reference" "https://www.web3d.org/technicalinfo/specifications/vrml97/part1/javascript.html#Example" "Edits: wrapped using a Transform node for completeness, renamed duplicate url field" ' title='ECMAScriptAnnexExample2.wrl'/>
 17 
          <!-- Transform ROOT_TRANSFORM is a DEF node that has 1 USE node: USE_1 -->
          <Transform DEF='ROOT_TRANSFORM'>
 18 
               <!-- Script Example_2 is a DEF node that has 1 USE node: USE_1 -->
               <Script DEF='Example_2directOutput='true'>
 19                      <field name='myselftype='SFNodeaccessType='initializeOnly'>
 20                           <Script USE='Example_2'>
 21                           </Script>
 21                      </field>
 22                      <field name='roottype='SFNodeaccessType='initializeOnly'>
 23                           <Transform USE='ROOT_TRANSFORM'/>
 24                      </field>
 25                      <field name='identifiertype='MFStringvalue='"foo.wrl"accessType='initializeOnly'/>
 26                      <field name='nodesLoadedtype='SFNodeaccessType='inputOnly'/>
 27                      <field name='trigger_eventtype='SFBoolaccessType='inputOnly'/>
  <![CDATA[
        
ecmascript:

function trigger_event(value, ts)
{
	// do something and then fetch values
	Browser.createVRMLFromURL(url, myself, 'nodesLoaded');
}
function nodesLoaded(value, timestamp)
{
	if (value.length > 5)
	{
		// do something if more than 5 nodes in this MFNode array...
	}
	root.addChildren = value;
}
// example is missing reference to the url field defined above

      
]]>
 29                 </Script>
 30            </Transform>
 31       </Scene>
 32  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->

<!-- to top Index for DEF nodes: Example_2, ROOT_TRANSFORM
-->
X3D Tooltips element index: field, head, meta, Scene, Script, Transform, WorldInfo, X3D, accessType and type, XML data types, field types

Event Graph ROUTE Table with 0 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/Basic/development/ECMAScriptAnnexExample2Index.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/development/ECMAScriptAnnexExample2.x3d -->

<!-- Color legend: X3D terminology <X3dNode DEF='idName' field='value'/> matches XML terminology <XmlElement DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
-->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->