ActionScript 3 – Programmation séquentielle et orientée objet
170
quadrilatère, l’écouteur gérant l’événement MOUSE_MOVE doit être détruit au moment où
l’utilisateur relâche le bouton de la souris.
La réalisation d’un rectangle qui change de taille en continu lorsque le curseur de la
souris bouge est possible grâce à la méthode clear(), qui efface le dernier tracé (réalisé à
l’aide de la méthode drawRect()) avant qu’un nouveau soit redéfini (les deux dernières
lignes du script).
Pour obtenir une création de forme en partant du centre (depuis l’emplacement du clic de
la souris), adaptez la fonction tracerRectangle() comme ceci :
function tracerRectangle(evt:MouseEvent) {
decalCentreX = 0;
decalCentreY = 0;
ecartLargeur=mouseX-pointDepartX;
ecartHauteur=mouseY-pointDepartY;
if ( evt.shiftKey) {
decalCentreX = Math.abs(ecartLargeur/2);
decalCentreY = Math.abs(ecartHauteur/2);
}
cadre.graphics.clear();
cadre.graphics.lineStyle(2,0x222222,0.6);
cadre.graphics.drawRect(pointDepartX-decalCentreX,pointDepartY-decalCentreY,
➥ecartLargeur,ecartHauteur);
}
Sprite, Shape ou MovieClip ?
La principale différence entre ces trois classes réside dans l’importance de leurs propriétés
et de leurs méthodes. Prenons un exemple précis : vous souhaiteriez créer un rectangle
aux coins arrondis, comme une carte à jouer ; vous devez, dans ce cas, créer une instance
de la classe Sprite() ou MovieClip(), car la classe Shape() ne possède pas la méthode
startDrag().
D’une façon générale, nous pouvons dire qu’il est conseillé d’utiliser la classe Shape()
pour tracer des formes vectorielles dans le but d’habiller la scène. En revanche, si vous
souhaitez créer un élément graphique pour pouvoir le contrôler, nous vous conseillons
d’utiliser les classes Sprite() ou MovieClip().
Rappel
Une occurrence de Sprite ne possède pas de timeline contrairement à celle d’un MovieClip.
170
quadrilatère, l’écouteur gérant l’événement MOUSE_MOVE doit être détruit au moment où
l’utilisateur relâche le bouton de la souris.
La réalisation d’un rectangle qui change de taille en continu lorsque le curseur de la
souris bouge est possible grâce à la méthode clear(), qui efface le dernier tracé (réalisé à
l’aide de la méthode drawRect()) avant qu’un nouveau soit redéfini (les deux dernières
lignes du script).
Pour obtenir une création de forme en partant du centre (depuis l’emplacement du clic de
la souris), adaptez la fonction tracerRectangle() comme ceci :
function tracerRectangle(evt:MouseEvent) {
decalCentreX = 0;
decalCentreY = 0;
ecartLargeur=mouseX-pointDepartX;
ecartHauteur=mouseY-pointDepartY;
if ( evt.shiftKey) {
decalCentreX = Math.abs(ecartLargeur/2);
decalCentreY = Math.abs(ecartHauteur/2);
}
cadre.graphics.clear();
cadre.graphics.lineStyle(2,0x222222,0.6);
cadre.graphics.drawRect(pointDepartX-decalCentreX,pointDepartY-decalCentreY,
➥ecartLargeur,ecartHauteur);
}
Sprite, Shape ou MovieClip ?
La principale différence entre ces trois classes réside dans l’importance de leurs propriétés
et de leurs méthodes. Prenons un exemple précis : vous souhaiteriez créer un rectangle
aux coins arrondis, comme une carte à jouer ; vous devez, dans ce cas, créer une instance
de la classe Sprite() ou MovieClip(), car la classe Shape() ne possède pas la méthode
startDrag().
D’une façon générale, nous pouvons dire qu’il est conseillé d’utiliser la classe Shape()
pour tracer des formes vectorielles dans le but d’habiller la scène. En revanche, si vous
souhaitez créer un élément graphique pour pouvoir le contrôler, nous vous conseillons
d’utiliser les classes Sprite() ou MovieClip().
Rappel
Une occurrence de Sprite ne possède pas de timeline contrairement à celle d’un MovieClip.
