ouvrir la poubelle(movieClip) - Flash/ActionScript - Programmation
Marsh Posté le 30-01-2009 à 04:21:54
Le probleme ici, est que tu utilises toujours 'feuille', qui correspond au dernier clip cree dans boucle for (a vue de pif 'feuille7_mc').
Ce qui est amrrant c'est que le code necessaire est dans une fonction mais pas dans les autres.
Bref, il faut que tu mettes cette ligne partout ou la fonction recoit un event de souris:
var feuille:MovieClip = event.currentTarget as MovieClip;
Marsh Posté le 25-01-2009 à 03:30:24
Bon, je suis étudiante, dans mon cours de flash, je fais le programme suivant, mon code est presque terminé, mais je n'arrive pas a le finaliser, c'est toujours la meme feuille qui se sélectionne lorsque je veux draguer les feuilles vers la poubelle, et je dois faire jouer le MovieClip de la poubelle lorsque je relache la feuille dessus, j'apprécierais votre aide, merci.
//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) {
//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;
}
}
Message édité par debutante26 le 25-01-2009 à 03:32:33