2 pièce(s) jointe(s)
Probleme de suppression d'élements
Bonjour a tous !
Je vous contacte suite a un petit probleme sur une animation.
L'animation consiste en un carré contenant 3 boules qui rebondissent en continu a l'intérieur du carré.
La création et l'animation des boules à l'intérieur du carré fonctionne très bien, cependant je bloque sur deux fonctions que j'ai ajouté liés aux événements MOUSE_OVER et MOUSE_OUT sur le carré.
MOUSE_OVER fait apparaitre et circuler les boules.
MOUSE_OUT supprime les boules et arrête l'animation.
Or si ma fonction MOUSE_OVER fonctionne avec l'appel de la fonctionne creerBulle (), ma fonction MOUSE_OUT ne fonctionne pas très bien puisqu'elle ne supprime qu'une seule boules sur les 3 existantes.
Pourriez vous m'aiguiller ou m'aidez a trouver une solution pour supprimer mon animation lorsque j'utilise l'événement MOUSE_OUT.
Merci d'avance pour vos réponses !
je vous joins le code :
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 63
|
var i:uint=0;
var Xmin:Number=0;
var Ymin:Number=0;
var Xmax:Number=170;
var Ymax:Number=170;
var largeur:uint=120;
var hauteur:uint=90;
var cible:MovieClip;
var bulle:MovieClip;
var conteneur:carre = new carre();
conteneur.x=300;
conteneur.y=300;
addChild(conteneur);
function creerBulle (): void {
do {
bulle = new MovieClip();// Instance de l'objet d'affichage
bulle.graphics.beginFill(0xFFFFFF, 0.2);//Le cercle sera rempli de rouge, transparent à 50%
bulle.graphics.drawCircle(0, 0, 30);//dessin du cercle avec la méthode drawCircle(x, y, rayon)
// Positionnement et affichage du cercle dans la séquence
bulle.x=(conteneur.width/2);
bulle.y=(conteneur.height/2);
bulle.viteX = Math.random()*0.5;
bulle.viteY = Math.random()*1;
bulle.addEventListener(Event.ENTER_FRAME,laBulleRebondit);
addChild(bulle);
//trace (bulle.name);
i++;
conteneur.addChild(bulle);
}
while (i<3);
}
function laBulleRebondit(e:Event):void{
cible=e.target as MovieClip;
cible.visible=true;
cible.viteX=e.target.viteX;
cible.viteY=e.target.viteY;
cible.y+=cible.viteY;
cible.x+=cible.viteX;
if(cible.x>Xmax-cible.width/2)
cible.viteX=-(Math.random()*2);
else if (cible.x<Xmin+cible.width/2)
cible.viteX=(Math.random()*2);
if(cible.y>Ymax-cible.height/2)
cible.viteY=-(Math.random()*2);
else if (cible.y<Ymin+cible.height/2)
cible.viteY=(Math.random()*2);
}
function surOver(evt:MouseEvent):void{
creerBulle();
}
function surOut(evt:MouseEvent):void{
cible.removeEventListener(Event.ENTER_FRAME,laBulleRebondit);
cible.visible=false;
}
conteneur.addEventListener(MouseEvent.MOUSE_OVER,surOver);//survol de la souris sur le rectangle
conteneur.addEventListener(MouseEvent.MOUSE_OUT,surOut);//desurvole de la souris sur le rectangle |
Pièce jointe 48167
Pièce jointe 48168