VRML97 bietet zahlreiche Möglichkeiten, mit denen einer Szene Dynamik und Interaktion verliehen werden kann. Die zentralen Bausteine für die hierzu erforderliche Ereignisbehandlung sind die EventIn- bzw. EventOut-Felder von Knoten, mit denen Meldungen empfangen und Zustandsänderungen weitergeschickt werden können. Es gibt Time,- Proximity-, Visibility-, Collision- und Touch-Sensoren, welche das Verstreichen einer Zeitspanne, das Annähern des Benutzers, die Sichtbarkeit von Objekten, das Zusammentreffen des Avatars mit einem Objekt und die Berührung mit dem Mauszeiger signalisieren. Verständlicherweise müssen Typ des verschickenden Ereignisfeldes und Typ des empfangenden Ereignisfeldes übereinstimmen.
Beispiel 5 zeigt die Kugel versehen mit einem Touch-Sensor, welcher bei Mausdruck eine Nachricht an den Soundknoten schickt, der auf diese Weise seinen Spielbeginnzeitpunkt erhält und die zugeordnete Wave-Datei startet.
#VRML V2.0 utf8 # interaktion.wrl: # Kugel macht Geraeusch bei Beruehrung Group { # plaziere Gruppenknoten children [ # bestehend aus DEF Taste TouchSensor {} # einem Touch-Sensor Inline { url "kugel.wrl" } # und einer Kugel ] } Sound { # plaziere Soundknoten source DEF Tut AudioClip { # gespeist von Audio-Clip url "tut.wav" # aus der Wave-Datei tut.wav } minFront 5 # Anfang des Schallbereichs maxFront 50 # Ende des Schallbereichs } ROUTE Taste.touchTime # bei Beruehrung der Kugel TO Tut.set_startTime # schicke Systemzeit an den Knoten Tut |