Un movie clip peut à présent exécuter du code
lorsqu'on clique ou passe dessus, etc. Il existe donc un gestionnaire
particulier qui contrôle les évènements et gère
les actions à exécuter :
on clipevent (mouseDown) {
...instructions...
...instructions...
}
Plaçons un movie clip sur la scène, nous allons nommer
son occurrence "mc1" pour les besoins de l'explication.
Appliquez le script ci-dessous à "mc1" :
Un bouton placé sur la scène peut contenir un script.
Lorsque vous cliquez sur l'occurrence d'un bouton, vous pouvez placer
le gestionnaire d'évènement suivant :
on (press) {
Instructions
...instructions...
}
Dans le cas d'un movie clip, la procédure reste la même
mais vous devez changer l'évènement. Vous sélectionnez
l'occurrence d'un movie clip sur la scène et vous tapez le
code ci-dessous :
on clipevent (mouseDown) {
Instructions
Instructions
}
ATTENTION : Les instructions font référence
à la timeline du movie clip. Si vous placez un "gotoAndStop
(15)", cela signifie que la tête de lecture se déplacera
sur l'image 15 de la timeline du movie clip mais pas sur l'image
15 de la timeline de l'animation.
ATTENTION Bis : Ces évènements sont valables
n'importe où à n'importe quel moment. Ils ne sont
pas comparables aux boutons. Si vous placez un script sur un movie
clip et un script sur un bouton, les deux vont s'exécuter
lorsque vous cliquerez sur le bouton. Le script du movie clip s'exécutera
quel que soit le moment et l'endroit où vous cliquez.
Les évènements :
on clipevent (mouseDown) {
_root.gotoAndStop (15)
}
Les instructions qui se trouvent dans le gestionnaires peuvent
s'exécuter à différents moments. Dans l'exemple
ci-dessus, la tête de lecture de l'animation (timeline principale)
se déplacera à l'image 15 si vous "cliquez"
n'importe où sur la scène. Vous n'êtes pas obligés
de cliquer sur le movie clip pour que l'instruction s'exécute.
Voici les autres possibilités :
load : au chargement de l'animation unload : au déchargement de l'animation enterFrame : lorsque la tête de lecture entre sur
une image de la timeline du movie clip mouseDown : lorsque l'utilisateur clique n'importe où
sur la scène et sur les occurrences d'une image mouseUp : lorsque l'utilisateur relâche le clic mouseMove : lorsque l'utilisateur bouge la souris keyDown : lorsque l'utilisateur enfonce une touche du clavier keyUp : lorsque l'utilisateur relâche une touche
du clavier
(data : lorsque le movie clip reçoit des données)
- Au moment où nous écrivons cet article, nous ne
sommes pas sûr du fonctionnement de cet événement.
Vous pouvez aussi placer plusieurs gestionnaires d'évènements
différents sur la même occurrence, mais un seul évènement
par image.
Comment s'en servir ?
Plusieurs cas sont envisageables. En effet, ils peuvent servir
de "moteurs". Yazo.net avait présenté en
mars 2000 une utilisation des movie clips qui s'est apparemment
généralisée dans la communauté des Flashers
francophones. Le principe était le suivant : Créer
un movie clip contenant deux images minimum, placer du code sur
la première et ou la deuxième image de la timeline
du movie clip, placer le movie clip sur la scène, le code
contenu dans le movie clip est alors exécuté. Cela
permettait d'effectuer des tests, des boucles, des incrémentations
de variables, etc. Les movies clips peuvent à présent
supporter un script, les évènements sont donc à
présent multiples.
"enterframe" :
Si vous créez un movie clip* que vous placez sur la scène,
vous pouvez à présent placer votre code directement
sur l'occurrence. Ce code sera alors exécuté automatiquement.
(N'oubliez pas que le code est valable pour la timeline du movie
clip. Si vous souhaitez donc faire référence à
des actions qui se déroulent sur la scène, vous devrez
utiliser le mot clé "_root"
ou "_parent").
* (qui peut contenir 1 ou plusieurs images)
Une variable contenue dans le movie clip s'incrémente.
Pour exécuter des actions qui ont un lien avec le déplacement
de la souris, vous pouvez utiliser le gestionnaire "on clipevent(mouseMove)".
La tête de lecture se déplace sur l'image
2 où les yeux sont fermés lorsque la souris
est en mouvement. Sinon, la tête de lecture est bloquée
sur l'image 1.