2016-04-27 1 views
0

今、私はステージ上の珍しい場所に6匹のマウスを配置しています。これらのマウスは、ムービークリップそのものの内部のタイムラインで行われた調整に基づいて動きます。私が目指すのは、タイマーに基づいてランダムに6つのムービークリップを開始することです。この仕事は現在、苦労しています。AS3にムービークリップをランダムに表示させる

ここは私のコードです。

var clipArray:Array = new Array(); 

clipArray[0] = musx0_mc; 
clipArray[1] = musx1_mc; 
clipArray[2] = musx2_mc; 
clipArray[3] = musx3_mc; 
clipArray[4] = musx4_mc; 
clipArray[5] = musx5_mc; 



var i:int = 0; 

var musTimer:Timer = new Timer(100); 

musTimer.addEventListener(TimerEvent.TIMER, playMus); 

function playMus(event:TimerEvent):void 
{ 
    for(i=0; i<clipArray.length; i++) 
    { 
     var randomMus:Number = Math.floor(Math.random()*100);   
     clipArray[randomMus].play(); 
    } 
} 

musTimer.start(); 

答えて

0

0〜5の乱数を取得したいようです。

//var randomMus:Number = Math.floor(Math.random()*100); // returns 0 to 99 
var randomMus:int = Math.floor(Math.random()*6); // returns 0 to 5 

多分このコードが機能します。

var clipArray:Array = new Array(); 
clipArray[0] = musx0_mc; 
clipArray[1] = musx1_mc; 
clipArray[2] = musx2_mc; 
clipArray[3] = musx3_mc; 
clipArray[4] = musx4_mc; 
clipArray[5] = musx5_mc; 

var musTimer:Timer = new Timer(100); 
musTimer.addEventListener(TimerEvent.TIMER, playMus); 

function playMus(event:TimerEvent):void 
{ 
    //for(i=0; i<clipArray.length; i++) // What is this loop?? 
    //{ 
     //var randomMus:Number = Math.floor(Math.random()*100); 
     var randomMus:int = Math.floor(Math.random()*6); 
     clipArray[randomMus].play(); 
    //} 
} 

musTimer.start(); 
+0

調整しても、マウスは同時に穴から引き出され続けます。 –

+0

私はこの答えが正しい軌道にあると思う、問題は同じ要素を再び始めることができることである。これを避けるには、配列から開始された 'MovieClip'を削除し、インデックス計算の基にします。また、@JonasDuvを設定すると、すべての「MovieClip」が自動的に再生を開始します。タイムラインの最初のフレームに 'stop()'がなければ、それらはすべて同時に開始します。 '.play()'の呼び出しは後で起こるかもしれませんが、これについて何も変更しません。 – null

関連する問題