2010-01-16 5 views
0

J'espère que je l'explique bien. Mais dans mon jeu j'ai 3 images clés pour ma balle Movieclip. 1 pour afficher son état normal. 2 pour montrer Blown Up, et 3 pour l'enlever de la scène. Un total de 3 images. Quand la balle touche un objet, je vais jouer le 2ème cadre. puis quand l'image 3 frappe, je l'enlève. Voici mon codejoue seulement une image clé

private function blowUp():void 
     { 
      if(dead) 
      { 
       gotoAndPlay(2); 
       if(currentFrame == 3) 
       { 
        garbage = true; 
       } 
      } 
     } 

Mon problème est qu'il va à l'image 2 mais n'atteint jamais l'image 3. donc le cadre 3 ne peut pas ramasser les ordures. Si j'utilise Play() à la place alors ça marche, mais gotoAndPlay doesnt

J'ai même essayé de retirer l'image-clé de l'image 3 (c'est toujours une image). (En espérant que ça se jouerait) mais ce n'est pas le cas. Je sais que mon problème est bête, donc si quelqu'un peut aider, ce serait génial. merci

Répondre

2

Etes-vous sûr de ne pas appeler blowUp à chaque image et de revenir à l'image 2 tout le temps?

Si est le cas, peut-être, essayez de mettre un garde booléenne:

private var doingBlowUp : Boolean = false; 

    private function blowUp() : void 
    { 
     if (dead) { 
      if (doingBlowUp) 
      { 
       if (currentFrame == 3) 
       { 
        garbage = true; 
        doingBlowUp = false; 
       } 

      } else { 
       doingBlowUp = true; 
       gotoAndPlay(2); 
      } 
     } 

    } 
0

vous devez ajouter un gestionnaire d'événements cadre saisir. Essayez de tracer currentFrame où vous faites la logique pour voir si c'est == 3. Ma conjecture est que ce sera une valeur de deux. L'autre option consisterait à appeler une fonction de l'image 3 pour effectuer le nettoyage approprié.

0

Attention au bug de Flash Player 9, où gotoAndPlay (x) jouerait deux fois le cadre "x".

Questions connexes