Noms d'événement et attributs d'événement: petit résumé
-
le nom de l'événement sera utilisé pour identifier un event dans des balises d'animation (comme "begin").
<animateColor fill="freeze" dur="0.1s" to="blue" from="yellow"
attributeName="fill"
begin="mouseover"/>
<circle
onmouseover="circle_click(evt)
" cx="300" cy="225" r="100" fill="red"/>
-
Donc
attention
: Ne confondez pas nom d'événement à utiliser dans les attributs des éléments d'animation et attributs d'événements pour lancer des scripts !!
"mouseover" pas égal à "onmouseover" (.... ou vous perdrez qq. heures ...)
Exemple 3-1: Simple animation avec un événement mouseover
<a xlink:href="http://tecfa.unige.ch">
<rect style="fill:#00FF00;stroke:#00FF00" width="200"
height="26" ry="5" rx="5" y="100" x="100"/>
</a>
-
L'ellipse jaune qui contient un texte va activer une animation (changement de couleur) lorsqu'on glisse la souris dessus ou lorsqu'on la sort de nouveau (l'attribut "begin" va s'activer lorsqu'il y a un mouseover ou un mouseout).
<g transform="translate(100,100)">
<ellipse stroke-width="2" stroke="black" fill="yellow" ry="1cm" rx="2cm"
id="hint_button"
>
<animateColor fill="freeze" dur="0.1s" to="blue" from="yellow"
attributeName="fill" begin="mouseover"/>
<animateColor fill="freeze" dur="0.1s" to="yellow" from="blue"
attributeName="fill" begin="mouseout"/
>
</ellipse>
<text style="font-size:12;" alignment-baseline="middle" x="-1cm">Touch me !</text>
</g>
-
Ensuite, on a un contenu caché et qui s'affiche lorsque l'élément qui a l'id "
hint_button
" a un mouseover. Autrement dit: l'attribut "begin" d'une animation ne peut pas seulement être un temps, un événement de l'élément parent comme ci-dessus, mais également un événement qui a lieu dans un autre élément (l'ellipse dans notre cas anime la propriété style du cercle caché)!!
<g transform="translate(100,200)" style="display:none">
<circle style="fill:yellow;" r="2cm" cy="1cm" cx="1cm"/>
<text style="font-size:12;" alignment-baseline="middle" x="-0.8cm" y="1cm">
Find the scecret URL !</text>
<animate fill="freeze" dur="0.1s" begin="hint_button.mouseover"
from="none" to="block" attributeName="display"/>
<animate fill="freeze" dur="0.1s" begin="hint_button.mouseout"
from="block" to="none" attributeName="display"/>
</g>
Résumé
-
Des animations peuvent se déclencher suite à un geste d'utilisateur.
-
Le geste de l'utilisateur crée un événement géré (ici) par les balises "begin".
-
Autrement dit, le "begin" fait guetteur d'événement pour l'événement nommé.
-
Une animation d'un élément peut se déclencher suite à un événement qui a lieu dans un autre élément (on bouge la souris sur l'ellipse et c'est le cercle qui apparaît)