在计时器上运行功能

时间:2013-01-02 17:16:12

标签: function actionscript timer

我想每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>

2 个答案:

答案 0 :(得分: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]);
        }

答案 1 :(得分:0)

问题是你的车没有设置为0。