|
|
|
Membre de ClickFR, Reseau francophone Paie-Par-Click |
|
|
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
Pour utiliser ROUTE, les noeuds doivent être nommés par la commande DEF.
Seuls des événements de même type peuvent être reliés.
Un événement n'a qu'une source, mais peut avoir plusieurs destinataires (plusieurs ROUTE peuvent utiliser la même source)
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
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 |