<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
<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 ' >
<head>
<meta name='titlecontent=' ECMAScriptAnnexExample2.x3d '/>
<meta name='creatorcontent='Don Brutzman'/>
<meta name='createdcontent='16 January 2000'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='descriptioncontent='A simple script example with no visible rendering results.'/>
<meta name=' error content=" VRML97 translation has extraneous 'url [ ]' output. "/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Basic/development/ECMAScriptAnnexExample2.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: Example_2, ROOT_TRANSFORM
-->
<Scene>
<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'/>

<Transform DEF='ROOT_TRANSFORM'>
<Script DEF='Example_2directOutput='true'>
<field name='myselftype='SFNodeaccessType='initializeOnly'>
<Script USE=' Example_2'>
</Script>
</field>
<field name='roottype='SFNodeaccessType='initializeOnly'>
<Transform USE=' ROOT_TRANSFORM'/>
</field>
<field name='identifiertype='MFStringvalue='"foo.wrl"accessType='initializeOnly'/>
<field name='nodesLoadedtype='SFNodeaccessType='inputOnly'/>
<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

      
]]>
</Script>
</Transform>
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: Example_2, ROOT_TRANSFORM
-->

Event Graph ROUTE Table with 0 ROUTE 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.


-->

<!-- 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. -->