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;
}
} |
Partager