IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

Probleme de suppression d'élements


Sujet :

ActionScript 3

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 6
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    bulle.fla

    bulle.swf

  2. #2
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cible=e.target as MovieClip;
    Donc cible est ta derniere boulle a appeler l'evenement bulleRebondit();

    Solution simple rajoute un array / Vector :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var bulles:Vector.<MovieClip> = new Vector.<MovieClip>();
    ensuite quand tu crée une bulle tu l'ajoutes a ton array / Vector :

    et quand tu enleve le visible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (var i:int =0; i< bulles.length; bulle++){
              bulles[i].removeEventListener(Event.ENTER_FRAME,laBulleRebondit);
    	  bulles[i].visible=false;
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 6
    Par défaut
    Super ta solution fonctionne !

    Merci pour ta réponse...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de suppression de fichier
    Par ythim dans le forum Langage
    Réponses: 6
    Dernier message: 10/07/2006, 07h40
  2. probleme de suppression apartir du fichier
    Par letoil dans le forum C
    Réponses: 3
    Dernier message: 05/05/2006, 00h02
  3. [VBA] Problem de suppression de composant
    Par jesus144 dans le forum IHM
    Réponses: 9
    Dernier message: 26/04/2006, 10h03
  4. [REDHAT] Problème de suppression avec dépendance
    Par byloute dans le forum RedHat / CentOS / Fedora
    Réponses: 1
    Dernier message: 21/04/2006, 18h19
  5. Réponses: 1
    Dernier message: 11/01/2006, 19h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo