sliderLoop_1_00.x3d source
<?xml version="1.0" encoding="UTF-8"?>

<X3D>
<Scene>
<Viewpoint/>
<NavigationInfo
type='"EXAMINE"'
/>

<!-- 赤円錐 -->
<Transform DEF='Cone-Tf'>
<Transform translation='3 0 0'>
<Shape>
<Appearance>
<Material diffuseColor='1 0 0'/>
</Appearance>
<Cone height='0.5' bottomRadius='0.2'/>
</Shape>
</Transform>
</Transform>

<!-- スライダー -->
<Group>
<Transform DEF='Slider-Tf'>
<Shape>
<Appearance>
<Material diffuseColor='0 0.8 0'/>
</Appearance>
<Sphere radius='0.2'/>
</Shape>
</Transform>
<Shape>
<Appearance>
<Material diffuseColor='0.5 0 0'/>
</Appearance>
<Box size='2 0.1 0.1'/>
</Shape>
<PlaneSensor DEF='Slider-PlS' minPosition='-1 0' maxPosition='1 0'/>
</Group>
<ROUTE fromNode='Slider-PlS' fromField='translation_changed' toNode='Slider-Tf' toField='translation'/>

<!-- タイムセンサー -->
<TimeSensor DEF='TiS' loop='TRUE' cycleInterval='5'/>

<!-- 回転アニメ -->
<OrientationInterpolator DEF='OI'
key='0 0.25 0.5 0.75 1'
keyValue='0 0 1 0
0 0 1 1.5708
0 0 1 3.1416
0 0 1 4.7124
0 0 1 6.2832
'
/>

<!-- スピード調整スクリプト -->
<Script DEF='Sc'>
<field accessType='inputOnly' type='SFVec3f' name='adjustSpeed'/>
<field accessType='inputOnly' type='SFFloat' name='set_fraction'/>
<field accessType='outputOnly' type='SFFloat' name='fraction_out'/>
<field accessType='initializeOnly' type='SFFloat' name='speed' value='0'/>
<field accessType='initializeOnly' type='SFFloat' name='oldF' value='0'/>
<![CDATA[ecmascript:

function adjustSpeed (vec) {

speed = vec.x;

}

function set_fraction (f) {

var df = f - oldF;
if ( df < 0 ) df++;
oldF = f;

fraction_out += df * speed;
if ( fraction_out > 1 ) fraction_out--;
else if ( fraction_out < 0 ) fraction_out++;

}
]]>
</Script>

<ROUTE fromNode='Slider-PlS' fromField='translation_changed' toNode='Sc' toField='adjustSpeed'/>

<ROUTE fromNode='TiS' fromField='fraction_changed' toNode='Sc' toField='set_fraction'/>
<ROUTE fromNode='Sc' fromField='fraction_out' toNode='OI' toField='set_fraction'/>
<ROUTE fromNode='OI' fromField='value_changed' toNode='Cone-Tf' toField='rotation'/>
</Scene>
</X3D>