[x3d-public] dynamic cycleInterval changes
Patrick Dähne
patrick.daehne at igd.fraunhofer.de
Mon Nov 21 06:48:20 PST 2016
Hello Andreas,
Setting the cycleInterval does not work because your example javascript code does not comply with X3D. Have a look at the following lines:
time.enabled = false;
time.cycleInterval = 5;
time.enabled = true;
And now have a look at the spec (X3D Language Bindings : ECMAScript (JavaScript), 4.3.5.2.2 Accessing fields and readable fields of other nodes):
… Events generated by setting an input-capable field on a node are sent at the completion of the initial function call made to the user code by the browser. … Assigning to the inputOnly field multiple times during one execution of the function still only sends one event and that event shall be the last value assigned.
So in X3D conformant browsers, the lines above send only two events:
1. time.enabled = true
2. time.cycleInterval = 5
The first assignment to time.enabled gets overwritten by the second assignment, so the timer never gets disabled.
Bye,
Patrick
> Am 20.11.2016 um 21:36 schrieb Andreas Plesch <andreasplesch at gmail.com>:
>
> I want to change the cycleTime of a TimeSensor in a x3d script:
>
> https://raw.githubusercontent.com/andreasplesch/cobweb_dom/master/tests/dynamicCycleTime.x3d
>
> cycleTime input events are ignored when the TimeSensor is enabled. So it is necessary to disable it first, then change the cycleTime and then reenable it.
>
> However, in all tested browser the above does not work as expected. These are cobweb, instant player and bs contact. bs contact also has this console message:
> Script node speeder: parse error: line 16 "time.cycleInterval = 2;" ()
> and therefore does not get to change the color to grey.
> The javascript sai does not have a SFTime constructor and allows numbers.
>
> cobweb and instant player change the color but do not slow down the ball.
> I first thought that cobweb does not correctly work through the sequence of events but since no browser works sofar I start to think that I am missing something.
>
> Any help or feedback appreciated,
>
> -Andreas
More information about the x3d-public
mailing list