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

問題は、変数 i が 0 に設定されていないことです。

于 2013-01-02T18:18:18.583 に答える