ActionScript 3 – Programmation séquentielle et orientée objet
128
bouge.addEventListener(TweenEvent.MOTION_FINISH ,augmenterTailleOccurrence);
}
function augmenterTailleOccurrence(evt:TweenEvent) {
balle2.scaleX=1;
balle2.scaleY=1;
}
Pièges classiques
Le déploiement de lignes d’instructions gérant un tween dans un programme est souvent
source d’erreurs pour deux raisons principales : la portée des variables locales et la
confusion entre déclaration et initialisation.
Fichier de référence : Chapitre5/tween3.fla
Une variable locale
Les développeurs néophytes oublient souvent qu’une variable a une portée limitée à la
fonction dans laquelle elle a été déclarée. Ainsi, en générant le code ci-dessous, vous ne
pouvez faire référence à l’instance de la classe Tween() qu’à l’intérieur de la fonction de
rappel deplacerBalle().
import fl.transitions.easing.*;
import fl.transitions.*;
//
btLancer.addEventListener(MouseEvent.CLICK,deplacerBalle);
function deplacerBalle(evt:MouseEvent) {
var bouge:Tween = new Tween(balle,"x",Strong.easeOut,60,400,2,true);
bouge.addEventListener(TweenEvent.MOTION_FINISH ,augmenterTailleOccurrence);
}
function augmenterTailleOccurrence(evt:TweenEvent) {
trace("Mouvement terminé");
}
balle.addEventListener(MouseEvent.CLICK,replacerBalle);
function replacerBalle(evt:MouseEvent) {
bouge.yoyo();
}
L’exécution de ce script génère une erreur car vous faites référence à l’instance bouge
dans la dernière fonction du programme alors qu’elle n’a pas été déclarée. Vous devez
donc déplacer la déclaration de la variable pour qu’elle puisse être accessible de n’importe
quel endroit du programme.
Précédent

- 156/426

Suivant