probleme au niveau du drag
Bonjour, je suis étudiante en développement de site web, j'ai donc un cours Flash et je n'arrive pas a faire mon drag correctement, de plus ma poubelle est sencée faire une animation une fois la feuille dragué dessus pour faire disparaitre la fameuse feuille, j'ai tous mes commentaires, voici mon code, de l'aide serait vraiment appréciée, merci!
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| //Variables pour la position initiale des feuilles
var posX:Number;
var posY:Number;
//Empêcher que la poubelle reçoive les événement de souris
function vide(event:MouseEvent):void {
}
poubelle_mc.addEventListener(MouseEvent.MOUSE_OVER, vide);
//Fonction descendreFeuille pour le déplacement des feuilles
function descendreFeuille(event:Event):void {
//Animer la descente de la feuille
var feuille:MovieClip = event.currentTarget as MovieClip;
//Analyser si la feuille est tombée sur le sol
if (sol_mc.hitTestPoint(feuille.x, feuille.y, true)) {
//Si oui détruire le gestionnaire ENTER_FRAME
feuille.removeEventListener(Event.ENTER_FRAME, descendreFeuille);
// et assigner les gestionnaires MOUSE_DOWN et MOUSE_UP
feuille.addEventListener(MouseEvent.MOUSE_DOWN, dragFeuille);
feuille.addEventListener(MouseEvent.MOUSE_UP, stopDragFeuille);
} else {
feuille.y += 3 + Math.random()*7;
}
}
//Attribution des écouteurs d'événement avec une boucle for
//pour l'animation de la descente des feuilles
for (var i:int=1; i<8; i++) {
var feuille:MovieClip = this["feuille"+ i + "_mc"];
feuille.addEventListener(Event.ENTER_FRAME, descendreFeuille);
}
//Fonction dragFeuille pour glisser les feuilles
function dragFeuille(event:MouseEvent) {
var feuille:MovieClip = event.currentTarget as MovieClip;
//Retenir la position initiale de la feuille
posX = feuille.x;
posY = feuille.y;
//Draguer la feuille
feuille.startDrag(true);
}
//Fonction stopDragFeuille pour arrêter de glisser les feuilles
function stopDragFeuille(event:MouseEvent):void {
//Analyser si la feuille est dans la poubelle
if (poubelle_mc.hitTestPoint(feuille.x, feuille.y, true)) {
//Si oui, ouvrir la poubelle
poubelle_mc.removeEventListener(MouseEvent.MOUSE_OVER, vide);
//et faire un fade-out sur la feuille et détruire les gestionnaires
}
//Sinon, remettre la feuille à sa place initiale
else {
feuille.x = posX;
feuille.y = posY;
}
} |