2014-11-02 6 views
0

저는 여기서 정말로 혼란 스럽습니다. 나는 완벽하게 작동하도록 코드를 얻은 다음 돌아가서 무언가를 시도했지만 이제는 작동하지 않습니다. 나는 지금 언제 나는 정말로 좌절하기 시작하고 있는지 파악할 수 없다. 나는 또한 어떤 오류도 나에게 건네지는 것처럼 보이지 않는다.AS3 파견 이벤트가 작동하지 않습니다.

두 개의 파일 Gameindex와 하나가 gameindex 상단에 가져온 내 레벨 인 외부 SWF입니다. 이벤트가 호출 될 때 타임 라인의 다른 곳으로 이동하고 싶지만 지금은 이벤트 호출이 작동하지 않습니다. 내 게임 지수에서 이제

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 

나는 fallowing 코드가 있습니다 :

는 수준의 내 코드 등이다

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)) 
      } 
     } 

    } 
}