VRML Worlds, Mondes VRML

Membre de ClickFR, Reseau francophone Paie-Par-Click

Gérer les événements en VRML

ROUTE

Pré requis : Utilisation de DEF et USE

Les noeuds de votre scène génèrent événements. Ces événements sont le fruit de modification dans la scène ou d'actions de l'utilisation. Ces événements sont envoyés par les propriétés d'un noeud de type eventOut ou exposedField (Champ exposé, champ accessible depuis un autre noeud ou un script JAVA).

Les événements ont une et une seule source (l'objet émetteur) mais par de destination par défaut. Les événements entrant des noeuds (eventIn ou exposedField) permettent de recevoir les événements.

Comme un événement comporte une donnée (voir champs et événements), recevoir un événement veut aussi dire recopier les données de l'événement dans un champ.

Les chemins des événements sont décrits par la commande ROUTE. Cette commande est très importante lorsqu'on veut gérer des interactions dans la scène.

La syntaxe est la suivante :

ROUTE <nom du noeud>.<champ (field) ou événements (eventName)> TO <nom du noeud>.<champ (field) ou événements (eventName)>

Par exemple :

ROUTE TS.touchTime TO Click.startTime
où TS est un touchSensor et Click un audioClip

Quelques règles importantes

Un exemple

Un premier exemple d'utilisation de ROUTE avec un touchSensor. Le touchSensor génère un événement lorsqu'un utilisateur clique sur un des objets inclus dans le groupe où il se trouve.

#VRML V2.0 utf8


# on créer un objet, ici une sphère
Shape {
 appearance Appearance { 
  material Material { diffuseColor 1 0 0 }
 }
 geometry Sphere { }
}

# on crée un sound
Sound {
 source DEF Click AudioClip {
  url "click.wav"
  stopTime 1
 }
 # il est audible de très loin, 
 # en fait on considère qu'il est audible
 # depuis toute la scène (si elle fait moins de 2000 (1000+1000) de large !)
 minFront 1000 
 maxFront 1000
 minBack 1000
 maxBack 1000
}


# On crée un TouchSensor
# on le nomme TS avec DEF
DEF TS TouchSensor { }

# on route eventOut touchTime du touchSensor vers le champs startTime de l'AudioClip
# Ce qui veut dire : au moment où je clique, je joue le son
ROUTE TS.touchTime TO Click.startTime

Voir le résultat


 Accueil de VRML Worlds   CHAT 3D   Autres technologies Web3D 
 Des textures   Apprendre le VRML   Autres mondes multi-user 
 Les objets du chat   Outils pour le VRML   Autres sites 3D 

Réagir, nous proposer un site, participer ...