2013-01-02 113 views
0

我想每3秒運行一次function<display()>。 當我跑我得到以下錯誤的函數:定時器運行功能

RangeError: Error #1125: The index 7 is out of range 4. 
    at views::twoHomeView/onTimer()[C:\Users\Kinect\Adobe Flash Builder 4.6\yattah\src\views\twoHomeView.mxml:26] 
    at flash.utils::Timer/_timerDispatch() 
    at flash.utils::Timer/tick() 

我的代碼是:

<fx:Script> 
    <![CDATA[ 

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

     private var timer:Timer; 

     public function Main():void { 
      timer = new Timer(1000, 3); 
      timer.addEventListener(TimerEvent.TIMER, onTimer); 
      timer.start(); 
     } 

     var kaisu:int =0; 

     private function onTimer(event:TimerEvent):void { 
      for(var i:int;i<5;i++){ 
       display(n[kaisu]); 
       kaisu += kaisu+1; 
      } 
     } 

    ]]> 
</fx:Script> 

回答

0

嗯,你n陣列只有4個元素和你要訪問元素數7。

你的問題的原因是在這裏:

 for(var i:int;i<5;i++){ 
      display(n[kaisu]); 
      kaisu += kaisu+1; //<-- here your values will be 0,1,3,7.. 
     } 

我敢肯定它不會增加你會希望它:

試試這個:

 for(var i:int=0;i<5;i++){ 
      display(n[i]); 
     } 
+0

@PotechiPotato這是個好我認爲的新聞? –

+0

謝謝你的建議。嘗試你的代碼,結果是沒有錯誤。但是這種情況下不能運行函數每3秒 –

0

問題INS您的變種我心不是設置爲0

+0

當你聲明一個int var默認情況下它被設置爲0 –