Les mouvements d’une occurrence sur la scène
CHAPITRE 5
141
stage.addEventListener(MouseEvent.CLICK,deplacerPuce);
function deplacerPuce(evt:MouseEvent) {
destX=mouseX;
destY=mouseY;
puce.addEventListener(Event.ENTER_FRAME,avancerBalle);
}
function avancerBalle(evt:Event) {
puce.x+=(destX-puce.x)*0.1;
puce.y+=(destY-puce.y)*0.1;
if (Math.abs(destX-puce.x) + Math.abs(destY-puce.y) < 2 ) {
puce.removeEventListener(Event.ENTER_FRAME,avancerBalle);
}
}
Si vous faites appel à un gestionnaire de type Event avec l’événement ENTER_FRAME, pensez
à exécuter la fonction removeEventListener() lorsque votre occurrence a terminé sa trajectoire. Vous noterez que pour évaluer la proximité de l’occurrence à son point de destination, nous vérifions si elle se trouve à moins d’un pixel de distance du clic de la souris.
Dans la mesure où la soustraction risque de renvoyer une valeur négative (destX-puce.x),
nous en prenons la valeur absolue.
Adaptons une dernière fois le script ci-dessus afin que l’occurrence suive perpétuellement le
curseur de la souris.
stage.addEventListener(MouseEvent.CLICK,deplacerPuce);
function deplacerPuce(evt:MouseEvent) {
puce.addEventListener(Event.ENTER_FRAME,avancerBalle);
}
function avancerBalle(evt:Event) {
puce.x+=(mouseX-puce.x)*0.1;
puce.y+=(mouseY-puce.y)*0.1;
}
Retirez éventuellement le gestionnaire MouseEvent afin que l’occurrence puce suive le
curseur de la souris dès le lancement de l’animation.
puce.addEventListener(Event.ENTER_FRAME,avancerBalle);
function avancerBalle(evt:Event) {
puce.x+=(mouseX-puce.x)*0.1;
puce.y+=(mouseY-puce.y)*0.1;
}
Dans ce dernier exemple, il est préférable d’utiliser ce script plutôt que des lignes
d’instructions faisant appel à la classe Tween().
CHAPITRE 5
141
stage.addEventListener(MouseEvent.CLICK,deplacerPuce);
function deplacerPuce(evt:MouseEvent) {
destX=mouseX;
destY=mouseY;
puce.addEventListener(Event.ENTER_FRAME,avancerBalle);
}
function avancerBalle(evt:Event) {
puce.x+=(destX-puce.x)*0.1;
puce.y+=(destY-puce.y)*0.1;
if (Math.abs(destX-puce.x) + Math.abs(destY-puce.y) < 2 ) {
puce.removeEventListener(Event.ENTER_FRAME,avancerBalle);
}
}
Si vous faites appel à un gestionnaire de type Event avec l’événement ENTER_FRAME, pensez
à exécuter la fonction removeEventListener() lorsque votre occurrence a terminé sa trajectoire. Vous noterez que pour évaluer la proximité de l’occurrence à son point de destination, nous vérifions si elle se trouve à moins d’un pixel de distance du clic de la souris.
Dans la mesure où la soustraction risque de renvoyer une valeur négative (destX-puce.x),
nous en prenons la valeur absolue.
Adaptons une dernière fois le script ci-dessus afin que l’occurrence suive perpétuellement le
curseur de la souris.
stage.addEventListener(MouseEvent.CLICK,deplacerPuce);
function deplacerPuce(evt:MouseEvent) {
puce.addEventListener(Event.ENTER_FRAME,avancerBalle);
}
function avancerBalle(evt:Event) {
puce.x+=(mouseX-puce.x)*0.1;
puce.y+=(mouseY-puce.y)*0.1;
}
Retirez éventuellement le gestionnaire MouseEvent afin que l’occurrence puce suive le
curseur de la souris dès le lancement de l’animation.
puce.addEventListener(Event.ENTER_FRAME,avancerBalle);
function avancerBalle(evt:Event) {
puce.x+=(mouseX-puce.x)*0.1;
puce.y+=(mouseY-puce.y)*0.1;
}
Dans ce dernier exemple, il est préférable d’utiliser ce script plutôt que des lignes
d’instructions faisant appel à la classe Tween().
