ActionScript 3 – Programmation séquentielle et orientée objet
98
Dans ce premier exemple, l’occurrence variateur ne peut bouger que dans la zone définie
en pointillés sur la copie d’écran de la figure 4-22. Pour être très précis, nous devons
ajouter que c’est en fait le point d’accrochage de l’occurrence qui ne peut pas sortir de la
zone, ce qui signifie que la moitié de l’instance peut se trouver à l’extérieur comme le montre
la copie d’écran de la figure 4-23.
Pour pallier ce problème, il suffit de revoir les quatre valeurs de définition de l’instance
de la classe Rectangle() à la baisse. Reprenons des valeurs de la figure 4-22 en sachant
que l’occurrence (le rond bleu foncé) mesure 30 pixels de diamètre, soit 15 pixels de rayon.
Voici les nouvelles valeurs :
var zoneDeContrainte:Rectangle = new Rectangle(75,95,155,115);
Nous avons tout simplement ajouté 15 pixels aux deux premières valeurs et soustrait
15 pixels à la largeur et la hauteur.
Revenons à notre objectif initial qui est de concevoir un variateur. Nous devons définir
une hauteur de contrainte de 0 pixel pour que l’occurrence ne puisse plus se déplacer
verticalement, mais uniquement horizontalement.
Fichier de référence : Chapitre4/draganddrop3.fla
var zoneLimite:Rectangle = new Rectangle(55,237,173,0);
variateur.addEventListener(MouseEvent.MOUSE_DOWN,variateurMobile);
variateur.addEventListener(MouseEvent.MOUSE_UP,variateurArrete);
function variateurMobile(evt:Event) {
variateur.startDrag(false,zoneLimite);
}
function variateurArrete(evt:Event) {
stopDrag();
}
Vous retrouverez ce script dans le fichier draganddrop4.fla , dans lequel nous avons
ajouté quelques lignes de code pour qu’une occurrence change de taille au moment où le
variateur est déplacé. Nous gérons également le problème abordé dans le développement
suivant (MOUSE_UP_OUTSIDE).
Figure 4-23
C’est le point d’alignement,
ou point d’accrochage, d’une
occurrence qui est contraint à ne
pas sortir d’une zone de contrainte
et non les bords de l’occurrence
elle-même.
98
Dans ce premier exemple, l’occurrence variateur ne peut bouger que dans la zone définie
en pointillés sur la copie d’écran de la figure 4-22. Pour être très précis, nous devons
ajouter que c’est en fait le point d’accrochage de l’occurrence qui ne peut pas sortir de la
zone, ce qui signifie que la moitié de l’instance peut se trouver à l’extérieur comme le montre
la copie d’écran de la figure 4-23.
Pour pallier ce problème, il suffit de revoir les quatre valeurs de définition de l’instance
de la classe Rectangle() à la baisse. Reprenons des valeurs de la figure 4-22 en sachant
que l’occurrence (le rond bleu foncé) mesure 30 pixels de diamètre, soit 15 pixels de rayon.
Voici les nouvelles valeurs :
var zoneDeContrainte:Rectangle = new Rectangle(75,95,155,115);
Nous avons tout simplement ajouté 15 pixels aux deux premières valeurs et soustrait
15 pixels à la largeur et la hauteur.
Revenons à notre objectif initial qui est de concevoir un variateur. Nous devons définir
une hauteur de contrainte de 0 pixel pour que l’occurrence ne puisse plus se déplacer
verticalement, mais uniquement horizontalement.
Fichier de référence : Chapitre4/draganddrop3.fla
var zoneLimite:Rectangle = new Rectangle(55,237,173,0);
variateur.addEventListener(MouseEvent.MOUSE_DOWN,variateurMobile);
variateur.addEventListener(MouseEvent.MOUSE_UP,variateurArrete);
function variateurMobile(evt:Event) {
variateur.startDrag(false,zoneLimite);
}
function variateurArrete(evt:Event) {
stopDrag();
}
Vous retrouverez ce script dans le fichier draganddrop4.fla , dans lequel nous avons
ajouté quelques lignes de code pour qu’une occurrence change de taille au moment où le
variateur est déplacé. Nous gérons également le problème abordé dans le développement
suivant (MOUSE_UP_OUTSIDE).
Figure 4-23
C’est le point d’alignement,
ou point d’accrochage, d’une
occurrence qui est contraint à ne
pas sortir d’une zone de contrainte
et non les bords de l’occurrence
elle-même.
