Cliquer-Glisser
Déplacement manuel de clip
Deux méthodes (de l'objet MovieClip) permettent de déplacer un clip par un cliquer/glisser: startDrag() et stopDrag(). Elles permettent de réaliser des déplacements contraint ou des déplacements libre.
En AS3, la fonction startDrag() attend seulement 2 paramètres:
Le vérouillage au centre (false ou true) et une zone de contrainte (comme un rectangle)
En AS2, la fonction startDrag() attend 5 paramètres:
startDrag(verrouillage au centre, gauche, haut, droit, bas)
Lors d'un click, le verrouillage au centre doit être sur false pour être déplacable.
"gauche", "haut", "droit" et "bas" sont des valeurs facultatives relatives aux coordonnées du clip qui spécifies un rectangle de délimitation pour le clip (les contraintes de déplacement). Attention: coordonnées relatives à la position du clip
Exemple de déplacement (AS3)
function appuyer(evt:MouseEvent):void {
monclip.startDrag();
}
monclip.addEventListener(MouseEvent.MOUSE_DOWN, appuyer);
function relacher(evt:MouseEvent):void {
monclip.stopDrag();
}
monclip.addEventListener(MouseEvent.MOUSE_UP, relacher);
function appuyer(evt:MouseEvent):void {
monclip.startDrag();
}
monclip.addEventListener(MouseEvent.MOUSE_DOWN, appuyer);
function relacher(evt:MouseEvent):void {
monclip.stopDrag();
}
monclip.addEventListener(MouseEvent.MOUSE_UP, relacher);
Si je veux rajouter un autre clip (monclip2), il suffit d'ajouter ces 2 lignes de code après le code existant:
monclip2.addEventListener(MouseEvent.MOUSE_DOWN, appuyer);
monclip2.addEventListener(MouseEvent.MOUSE_UP, relacher);
Ce qui sous-entend que je peut utiliser les même fonctions (appuyer et relacher) pour plusieurs clip!
Containte dynamique
En AS3, la fonction startDrag() attend seulement 2 paramètres : Le vérouillage au centre (false) et une zone de contrainte (un rectangle)
Exemple de déplacement avec containte dynamique (AS3)
var monRectangle:Rectangle = new Rectangle((monclip.width)/2, monclip.y, stage.stageWidth, 0);
monclip.startDrag(false, monRectangle);
var monRectangle:Rectangle = new Rectangle((monclip.width)/2, monclip.y, stage.stageWidth, 0);
monclip.startDrag(false, monRectangle);
Syntaxe de la classe Rectangle : Rectangle(xRect, yRect, largeurRect, hauteurRect);