La construction d’une interface sur la scène
CHAPITRE 6
169
définir l’instant de son déclenchement. Regardons tout de suite cet exemple qui est particulièrement intéressant pour de nombreuses raisons.
var cadre:Shape = new Shape();
addChild(cadre);
var pointDepartX:Number;
var pointDepartY:Number;
var ecartLargeur:Number;
var ecartHauteur:Number;
stage.addEventListener(MouseEvent.MOUSE_DOWN,creerRectangle);
stage.addEventListener(MouseEvent.MOUSE_UP,annulerMouseMove);
function annulerMouseMove(evt:MouseEvent) {
stage.removeEventListener(MouseEvent.MOUSE_MOVE,tracerRectangle);
}
function creerRectangle(evt:MouseEvent) {
pointDepartX = mouseX;
pointDepartY = mouseY;
stage.addEventListener(MouseEvent.MOUSE_MOVE,tracerRectangle);
}
function tracerRectangle(evt:MouseEvent) {
ecartLargeur=mouseX-pointDepartX;
ecartHauteur=mouseY-pointDepartY;
cadre.graphics.clear();
cadre.graphics.lineStyle(2,0x222222,0.6);
cadre.graphics.drawRect(pointDepartX,pointDepartY,ecartLargeur,ecartHauteur);
}
Nous commençons par créer une instance de la classe Shape() pour pouvoir définir un
style de trait et lui appliquer la méthode drawRect() ultérieurement dans le script.
Les quatre variables que nous déclarons vont nous servir, comme leurs noms l’indiquent,
à mémoriser l’emplacement du clic au moment où l’utilisateur s’apprête à tracer la forme
et stocker le calcul de la largeur et de la hauteur du quadrilatère.
Attention : vous ne devez pas demander au lecteur Flash de chercher à tracer la forme
(rectangle ou carré) dès que la souris bouge. Cela ne doit être effectué qu’à partir du
moment où un clic a été défini sur la scène. C’est la raison pour laquelle l’objet d’écoute
qui fait appel à l’événement MOUSE_MOVE se trouve dans la fonction de rappel de l’objet
d’écoute qui fait lui-même appel à l’événement MOUSE_DOWN. Afin de terminer le tracé du
Précédent

- 197/426

Suivant