2012-12-04 24 views
0

好吧,我很新的ActionScript 3的重定向玩家在遊戲屏幕上的計時器完成

,我想我的定時器直接不管是誰打我的比賽中去了「遊戲結束」屏幕上的計時器完成( 00:00)。此刻,我收到一條錯誤消息:「1067:將類型類的值隱式強制爲無關類型flash.display:DisplayObject。」

任何想法?

package { 

    import flash.display.MovieClip; 
    import flash.utils.Timer; 
    import flash.events.TimerEvent; 

    public class SecondCounter extends MovieClip { 

     private var myTimer:Timer=new Timer(1000,0); 
     private var secs:Number=10; 
     private var mins:Number=0; 
     private var sec_t:String; 
     private var min_t:String; 
     var screen7:EndScreen; 

     public function SecondCounter() { 

      myTimer.addEventListener(TimerEvent.TIMER, timerHandler); 
      myTimer.start(); 
     } 

     private function timerHandler(evt:TimerEvent):void { 
      if (secs==0) { 
       if (mins==0) { 
        addChild(EndScreen); 
       } else { 
        mins--; 
        secs=59; 
       } 
      } else { 
       secs--; 
      } 
      if(secs<10){ 
       sec_t = "0"+String(secs) 
      } else { 
       sec_t = String(secs); 
      } 
      if(mins<10){ 
       min_t = "0"+String(mins) +":" 
      } else { 
       min_t = String(mins)+":"; 
      } 
      secondField.text = min_t + sec_t; 
     } 
    }  
} 

回答

2

問題是,您正試圖將類本身添加到屏幕上,而不是類的實例。

var screen7:EndScreen; 
// .... 
addChild(EndScreen); 

EndScreen是這個類。這是如何創建一個實際的EndScreen對象的藍圖。 Screen7是EndScreen類的一個實例(EndScreen class = blueprint,screen7 instance =實際建成的房子)。

但是你還沒有真正instaniated screen7,這樣做的:

var screen7:EndScreen = new EndScreen(); 

現在你可以說實例添加到顯示:

addChild(screen7); 
+0

謝謝。我想爲我添加GameOver屏幕,我需要刪除其他課程控制的遊戲屏幕。目前,如果我嘗試添加「removeChild(screen2); addChild(screen7);」我得到這個輸出錯誤:TypeError:Error#2007:Parameter child must be non-null。 \t在flash.display使用::的DisplayObjectContainer/removeChild之() \t在SecondCounter/timerHandler() \t在flash.utils ::定時器/ _timerDispatch() \t在flash.utils ::定時器/蜱() – jshjohnson