2014-11-02 117 views
0

我真的很困惑。我得到的代碼完美地工作,然後回去嘗試一些東西,現在它不會工作。我現在似乎無法弄清楚,現在我開始非常沮喪。我似乎也沒有收到任何交給我的錯誤。AS3調度事件不起作用

我得到了兩個文件Gameindex和一個外部swf,這是我在gameindex之上導入的關卡。我想在事件被調用時移動到時間線上的其他地方,但截至目前爲止,調用該事件不起作用。

我的級別代碼是這樣:

private function enterFrameHandler(event:Event):void 
    { 
     updatePosition(); 
     updateRotation(); 

     scorebox.text=String(score); 

     var t:Number = Math.random(); 
     if(t>0.98) { 
      addasteroid(); 
     } 

     for (var a:int = 0;a<allast.length;a++) { 

      if (contains(allast[a])) { 

      for (var b:int = 0;b<allbullets.length;b++) { 

       if (allbullets[b].hitTestObject(allast[a])) { 
        //removeChild(allbullet[b]); 
        if (contains(allast[a])) { 
        removeChild(allast[a]); 
        } 
        //score  
        score+=5; 

        if (score==20) { 
         dispatchEvent(new Event("next_level")); 
        } 

       } 
       if (allast[a].hitTestObject(_player)) { 
        //removeChild(allbullet[b]); 
        trace("hitplayer"); 
        endGame(); 
       } 


      } 

      allast[a].y += 2; 

      } 
     } 

    }//function 

現在在我的遊戲我的索引有休耕代碼:

import flash.events.Event; 

addEventListener("next_level", movetointro); 

    function movetointro(e:Event){ 
    trace("IT IS WORKING");} 

爲什麼不是我movetointro功能的工作?

回答

0

你可以試試這個(工作100%):

package { 

    import flash.display.MovieClip; 

    public class Game extends MovieClip { 

     import flash.events.* 

     private var score:Number 
     private static const event_name:String = 'my_event_name' 
     private static const min_score_to_go:Number = 20 

     public function Game() { 
      score = 0 
      addEventListener(event_name, goto_next_level) 
     } 

     public function score_up(){ 
      score ++ 
      verify_score() 
     } 

     public function score_down(){ 
      score -- 
      verify_score() 
     } 

     private function goto_next_level(e:Event){ 
      trace('OK, I can go to next level') 
      removeEventListener(event_name, goto_next_level) 
     } 

     private function verify_score(){ 
      trace('score : '+score) 
      if(score == min_score_to_go){ 
       dispatchEvent(new Event(event_name)) 
      } 
     } 

    } 
}