2013-01-02 94 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 –