ActionScript 3 – Programmation séquentielle et orientée objet
114
Dans l’exemple suivant, nous souhaitons qu’une occurrence ne puisse être déplacée qu’une
seule fois.
Fichier de référence : Chapitre4/desactiveroccurrence2.fla
pion1.addEventListener(MouseEvent.MOUSE_DOWN,deplacerPion);
pion1.addEventListener(MouseEvent.MOUSE_UP,fixerPion);
function deplacerPion(evt:MouseEvent) {
evt.currentTarget.startDrag();
evt.currentTarget.removeEventListener(MouseEvent.MOUSE_DOWN,deplacerPion);
}
function fixerPion(evt:MouseEvent) {
stopDrag();
evt.currentTarget.removeEventListener(MouseEvent.MOUSE_UP,fixerPion);
}
Pour interdire un deuxième déplacement éventuel, nous devons tout simplement annuler
les gestionnaires d’événements. Nous commençons par appeler la fonction removeEventListener() pour l’événement MOUSE_DOWN si l’utilisateur clique sur l’occurrence. Au moment
où il relâche le bouton de la souris après un déplacement de l’occurrence, nous appelons
à nouveau la méthode removeEventListener() pour annuler également l’événement MOUSE_UP.
Précisons, tout de même, que si ces occurrences doivent être à nouveau mobiles, il est
tout à fait possible de leur redéfinir un écouteur en faisant appel à la méthode addEventListener().
Déplacer la tête de lecture du scénario
Fichier de référence : Chapitre4/deplacerTete.fla
Il existe une problématique récurrente lorsqu’une personne doit réaliser ses premières
animations en Flash (soulevée dans le chapitre 15) : quelle méthode faut-il utiliser pour
afficher différents contenus sur la scène d’une animation, en réaction à un événement de
type souris ou clavier, déclenché par l’utilisateur ? Il existe de nombreuses techniques.
L’une d’entre elles, qui ne présente pas de réelle difficulté, mais qui est aussi la moins
dynamique, consiste à déplacer la tête de lecture du scénario sur des images-clés.
La construction des différents écrans d’une animation peut en effet être réalisée très
simplement à partir de plusieurs images disposées le long du scénario. Il suffit ensuite de
programmer des boutons pour qu’ils réagissent au clic et déclenchent un déplacement de
la tête de lecture. Une telle technique signifie donc que la mise en forme des écrans passe
par une manipulation intensive des outils de Flash et de la Timeline (le scénario). Dans le
cas d’une animation ayant un contenu très important, cette méthode s’avère peu efficace
et fait perdre beaucoup de temps.
114
Dans l’exemple suivant, nous souhaitons qu’une occurrence ne puisse être déplacée qu’une
seule fois.
Fichier de référence : Chapitre4/desactiveroccurrence2.fla
pion1.addEventListener(MouseEvent.MOUSE_DOWN,deplacerPion);
pion1.addEventListener(MouseEvent.MOUSE_UP,fixerPion);
function deplacerPion(evt:MouseEvent) {
evt.currentTarget.startDrag();
evt.currentTarget.removeEventListener(MouseEvent.MOUSE_DOWN,deplacerPion);
}
function fixerPion(evt:MouseEvent) {
stopDrag();
evt.currentTarget.removeEventListener(MouseEvent.MOUSE_UP,fixerPion);
}
Pour interdire un deuxième déplacement éventuel, nous devons tout simplement annuler
les gestionnaires d’événements. Nous commençons par appeler la fonction removeEventListener() pour l’événement MOUSE_DOWN si l’utilisateur clique sur l’occurrence. Au moment
où il relâche le bouton de la souris après un déplacement de l’occurrence, nous appelons
à nouveau la méthode removeEventListener() pour annuler également l’événement MOUSE_UP.
Précisons, tout de même, que si ces occurrences doivent être à nouveau mobiles, il est
tout à fait possible de leur redéfinir un écouteur en faisant appel à la méthode addEventListener().
Déplacer la tête de lecture du scénario
Fichier de référence : Chapitre4/deplacerTete.fla
Il existe une problématique récurrente lorsqu’une personne doit réaliser ses premières
animations en Flash (soulevée dans le chapitre 15) : quelle méthode faut-il utiliser pour
afficher différents contenus sur la scène d’une animation, en réaction à un événement de
type souris ou clavier, déclenché par l’utilisateur ? Il existe de nombreuses techniques.
L’une d’entre elles, qui ne présente pas de réelle difficulté, mais qui est aussi la moins
dynamique, consiste à déplacer la tête de lecture du scénario sur des images-clés.
La construction des différents écrans d’une animation peut en effet être réalisée très
simplement à partir de plusieurs images disposées le long du scénario. Il suffit ensuite de
programmer des boutons pour qu’ils réagissent au clic et déclenchent un déplacement de
la tête de lecture. Une telle technique signifie donc que la mise en forme des écrans passe
par une manipulation intensive des outils de Flash et de la Timeline (le scénario). Dans le
cas d’une animation ayant un contenu très important, cette méthode s’avère peu efficace
et fait perdre beaucoup de temps.
