Browser
Interface : Exemple 4 / Source VRML
Dans ce premier exemple utilisant un script Java,
nous allons utiliser les méthodes addRoute
et deleteRoute de l'objet Browser
. La scène suivante affiche une sphère se déplacant
alternativement de gauche à droite et de droite à gauche.
Si l'utilisateur clique sur la sphère, le script Java
est appelé. Voir le fonctionnement du script dans la fenêtre
ci dessous.
Source:
#VRML
V2.0 utf8
#-
KDO : Browser Interface
#-
Demo : Java, processEvent
#
: addRoute & deleteRoute
#--------------------------------------
NavigationInfo
{
}
DirectionalLight
{
}
DEF
T_R Transform
{
children
[
DEF
TIMER TimeSensor
{
cycleInterval
4
loop
TRUE
}
DEF
C_I ColorInterpolator
{
key
[ 0,0.5,1 ]
keyValue[
0 1 0, 1 0 1, 0 1 0
]
}
DEF
P_I PositionInterpolator
{
key
[ 0,0.5,1 ]
keyValue[
-2 0 0, 2 0 0, -2 0 0
]
}
Shape
{
geometry
Sphere {}
appearance
Appearance {
material
DEF Balle
Material {
}
}
}
DEF
T_S TouchSensor
{}
]
}
DEF
MonScript Script
{
eventIn
SFBool touch
field
SFNode T
USE TIMER
field
SFNode C
USE C_I
field
SFNode S
USE Balle
field
SFNode X
USE T_R
field
SFNode P
USE P_I
url
"vr_bi_3.class"
}
ROUTE
T_S.isActive
TO MonScript.touch
ROUTE
TIMER.fraction_changed
TO P_I.set_fraction
ROUTE
P_I.value_changed
TO T_R.set_translation
Analyse:
Notez bien que la seule animation déclarée dans la
scène est celle du déplacement de la sphère :
ROUTE
TIMER.fraction_changed
TO P_I.set_fraction
ROUTE
P_I.value_changed
TO T_R.set_translation
Remarquez aussi la façon dont les champs du script sont déclarés
: nous utilisons [ USE nom ] pour obtenir
le nom du champ dans le script Java (voir
ci-dessous)