こんにちは、forループに関する問題があります。3つのMovieClipsを含む配列があり、各ムービークリップを1つずつ再生したいのですが、forループ内のタイマークラスを使用してplay()を遅らせることでこれを実現することを計画しています。各MCの。
誰かが私を正しい方向に向けることができますか?以下に示すのは、return関数を使用する私の試みです(ただし、失敗しました)
//Shuffling the array to produce a random order when MC's are playing
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);
//OBSTACLE START DELAY
var timerPlay:Timer = new Timer(1000,1);
timerPlay.addEventListener(TimerEvent.TIMER, ontimerPlay);
timerPlay.start();
function ontimerPlay(evt:TimerEvent):void{
//FOR EACH OBSTACLE
var _i:Number=-1;
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{
_i = i;
trace(obstacleArray[i]);
obstacleArray[i].play();
trace(i);
}
}
return _i;
}
よろしくお願いします!