1

AS3 フラッシュ スクリプトに問題があります。

私は 3 つのムービークリップ アイテムの配列を持っています。各アイテム間で 1 秒のタイマー遅延でそれぞれを再生したいと考えています。ただし、'play' インスタンス化の周りにタイマー クラスを配置すると、未定義のプロパティのエラーが返されます。

//Randomise MC array
function randomSort(a:*, b:*):Number
{
    if (Math.random() < 0.5) return -1;
    else return 1;
}
var obstacleArray:Array = [obstacleCar,obstacleCar2,obstacleCar3];
obstacleArray.sort(randomSort);


trace(obstacleArray);
trace(obstacleArray.length);

//Delay initially 1 second upon entering frame
var timerPlay:Timer = new Timer(1000,1);
timerPlay.addEventListener(TimerEvent.TIMER, ontimerPlay);
timerPlay.start();
function ontimerPlay(evt:TimerEvent):void{

    //FOR EACH OBSTACLE, Run through array delaying each item by 1 second

    for(var i:Number=0; i<obstacleArray.length; i++){

        var timerDelay:Timer = new Timer(1000,1);
        timerDelay.addEventListener(TimerEvent.TIMER, ontimerDelay);
        timerDelay.start();
        function ontimerDelay(evt:TimerEvent):void{

        obstacleArray[i].play();
        trace(obstacleArray[i]);

        trace(i);
            }
        }
}

あなたが私を助けることができればどうもありがとうございました!

4

2 に答える 2

0

閉鎖の世界へようこそ!

どうやら ActionScript では、これを正しく機能させるために何らかのハッカーを行う必要があります。この質問は、あなたがいるのとほぼ同じ状況について尋ねます-答えは私にとってうまくいきました:

as3で変数を関数にバインドするにはどうすればよいですか

于 2013-02-18T21:41:35.870 に答える
0

trace(i) の出力が表示される場合、出力は常に 3 になります。これは、eventHandler が呼び出されたときに、i の値が既に 3 にインクリメントされているために発生しています。インデックス 3 では、何の障害もありません。

于 2013-02-15T14:13:04.390 に答える