drawing_1_0_00.x3d source
<?xml version="1.0" encoding="UTF-8"?>
<X3D>
<Scene>
<Viewpoint position='0 10 12' orientation='1 0 0 -0.78'/>

<NavigationInfo
type='
"EXAMINE"'
/>

<Transform>
<Shape>
<Appearance>
<Material diffuseColor='0.6 0.3 0'/>
</Appearance>
<Box size='10 0.1 10'/>
</Shape>
<TouchSensor DEF='ThS'/>
</Transform>

<Group DEF='Balls-Gp'>
</Group>

<Script DEF='Sc'>
<field accessType='inputOnly' type='SFVec3f' name='set_hitPoint'/>
<field accessType='outputOnly' type='MFNode' name='addChildren'/>
<field accessType='initializeOnly' type='SFNode' name='Ball'>
<Shape>
<Appearance>
<Material diffuseColor='1 0 0'/>
</Appearance>
<Sphere radius='0.1'/>
</Shape>
</field>
<field accessType='initializeOnly' type='MFFloat' name='key_0' value='0 0.25 0.5 0.75 1'/>
<field accessType='initializeOnly' type='MFVec3f' name='keyValue_0' value='0 0 0 0 1 0 0 4 0 0 9 0 0 16 0'/>
<![CDATA[ecmascript:
function set_hitPoint(vec,et) {

// TimeSensor ノードを生成し、イベント時刻を startTime にセットする。
var TiS = new SFNode ('TimeSensor { cycleInterval 20 }');
TiS.startTime = et + 1;

// PositionInterpolator ノードを生成し、key と keyValue をセットする。
var PI = new SFNode ('PositionInterpolator {}');
PI.key = key_0;
PI.keyValue = keyValue_0;

// Transform ノードを生成し、その子ノードをセットする。
var ballTf = new SFNode ('Transform {}');
ballTf.children = new MFNode ( Ball, TiS, PI );

// ルートを追加する。
Browser.addRoute( TiS, 'fraction_changed', PI, 'set_fraction' );
Browser.addRoute( PI, 'value_changed', ballTf, 'translation' );

// Transform ノードを生成し、カーソルが触れた場所に球をセットする。
var Tf = new SFNode ('Transform {}');
Tf.translation = vec;
Tf.children[0] = ballTf;

addChildren[0] = Tf;

}
]]>
</Script>

<ROUTE fromNode='ThS' fromField='hitPoint_changed' toNode='Sc' toField='set_hitPoint'/>
<ROUTE fromNode='Sc' fromField='addChildren' toNode='Balls-Gp' toField='addChildren'/>
</Scene>
</X3D>