#VRML V2.0 utf8 Viewpoint { position 0 0 10 } Group { # l'objet qui va être géré par le TouchSensor children [ Shape { geometry Sphere {} appearance Appearance { material Material { diffuseColor 0 0 1 } } } # Le TouchSensor permet de savoir si le pointeur de la souris est sur l'objet DEF TSRollOver TouchSensor { } ] } # le noeud switch contient l'objet à afficher en cas de RollOver # cette fois, il est en dehors du group DEF RollOver Switch { choice [ Transform { translation 0 2 0 children Shape { geometry Text { string "Sphere" } appearance Appearance { material Material { diffuseColor 1 0 0 } } } } # le second choix du Switch ne comporte aucun objet , ] # par défaut, on n'affiche rien whichChoice 1 } # Voila le script # si RollOver est à TRUE (le pointeur sur l'objet), # le whichChoice défini plus haut passe à 0 # si RollOver est à FALSE (le pointeur n'est pas sur l'objet), # le whichChoice défini plus haut passe à 1 (état initial, rien n'est affiché) DEF ScrRollOver Script { eventIn SFBool RollOver eventOut SFInt32 choiceRollOver url "javascript: function RollOver(value) { if (value) { choiceRollOver=0; } else { choiceRollOver=1; } } " } # 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