0

我想function<display()>每 3 秒运行一次。当我运行该函数时,出现以下错误:

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>
4

2 回答 2

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]);
        }
于 2013-01-02T18:14:36.787 回答
0

问题在于您的 var i 未设置为 0。

于 2013-01-02T18:18:18.583 回答