## # Now the Script has multiple functions DEF SCRIPT Script { eventIn SFFloat set_fraction eventOut SFColor value_changed eventIn SFTime touched eventOut SFBool enabled field SFBool on FALSE url "javascript: function touched(time) { if (!on) { on = 'TRUE'; enabled = 'TRUE'; } else { on = 'FALSE'; enabled = 'FALSE'; } } function set_fraction(value) { if (value < 0.5) value_changed = '1 0 0'; else value_changed = '0 1 1'; } " }# ## # The bulb reacts to an isOver event ROUTE TOUCH.touchTime TO SCRIPT.touched ROUTE SCRIPT.enabled TO TIME.enabled ROUTE TIME.fraction_changed TO SCRIPT.set_fraction ROUTE SCRIPT.value_changed TO MATERIAL.diffuseColor ] } } Bulb { translation -8 0 0 scale 0.5 0.5 0.5 } Bulb { translation -5 0 0 } Bulb { scale 1.5 1.5 1.5 } Bulb { translation 5 0 0 } Bulb { translation 8 0 0 scale 0.5 0.5 0.5 }