#VRML V2.0 utf8 PROTO RollOver [ # L'objet à afficher field MFNode objet [ ] # l'objet qui s'affiche lors d'un RollOver field MFNode Roll [ ] ] { Group { # l'objet qui va être géré par le TouchSensor children [ Group { children IS objet } # 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 [ Group { children IS Roll } # le second choix du Switch ne comporte aucun objet , ] # par défaut, on n'affiche rien whichChoice 1 } 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 } Viewpoint { position 0 0 20 } Transform { translation 3 0 0 children RollOver { objet Shape { geometry Sphere {} appearance Appearance { material Material { diffuseColor 0 0 1 } } } Roll Transform { translation 0 1.5 0 children Shape { geometry Text { string "Sphere" } appearance Appearance { material Material { diffuseColor 1 0 0 } } } } } } Transform { translation -3 0 0 children RollOver { objet Shape { geometry Box {} appearance Appearance { material Material { diffuseColor 0 1 1 } } } Roll Transform { translation 0 1.5 0 children Shape { geometry Text { string "Cube" } appearance Appearance { material Material { diffuseColor 1 0 0 } } } } } }