#VRML V2.0 utf8 Viewpoint { position 0 0 10 } Group { children [ # le noeud switch contient les objets deux : # celui qui sera affiché initialement # et celui qui sera affiché lorsque la souris sera sur l'objet DEF RollOver Switch { choice [ Shape { geometry Box {} appearance Appearance { material Material { diffuseColor 1 0 0 } } } , Shape { geometry Sphere {} appearance Appearance { material Material { diffuseColor 0 0 1 } } } ] # le premier objet est celui qui est affiché initialement whichChoice 0 } # Le TouchSensor permet de savoir si le pointeur de la souris est sur l'objet DEF TSRollOver TouchSensor { } ] } # Voila le script # si RollOver est à TRUE (le pointeur sur l'objet), # le whichChoice défini plus haut passe à 1 # si RollOver est à FLASE (le pointeur n'est pas sur l'objet), # le whichChoice défini plus haut passe à 0 (état initial) DEF ScrRollOver Script { eventIn SFBool RollOver eventOut SFInt32 choiceRollOver url "javascript: function RollOver(value) { if (value) { choiceRollOver=1; } else { choiceRollOver=0; } } " } # Les ROUTES # Le isOver du TouchSensor est redirigé vers le RollOver du script ROUTE TSRollOver.isOver TO ScrRollOver.RollOver # Le choiceRollOver du script est redirigé vers le whichChoide du Switch ROUTE ScrRollOver.choiceRollOver TO RollOver.whichChoice