2016-04-27 6 views
0

Im Moment habe ich sechs Mäuse Plätze in spezifischen Orten auf der Bühne. Diese Mäuse bewegen sich basierend auf Anpassungen, die auf der Timeline im Movieclip selbst vorgenommen wurden. Ich möchte diese sechs Movieclips nach dem Zufallsprinzip starten, basierend auf einem Timer. Diese Aufgabe im Moment struggeling mit ..Filmclips erscheinen zufällig in AS3

Hier ist mein Code;

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(); 

Antwort

0

Es scheint, dass Sie 0 bis 5 Zufallszahl erhalten möchten.

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

Vielleicht funktioniert dieser Code.

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

Die Mäuse kommen zur gleichen Zeit aus ihren Löchern heraus, sogar mit Ihren Anpassungen. –

+0

Ich denke, diese Antwort ist auf der richtigen Spur, das Problem ist, dass es das gleiche Element erneut starten kann. Um dies zu vermeiden, entfernen Sie den gestarteten 'MovieClip' aus dem Array und richten Sie die Indexberechnung darauf aus. Auch @JonasDuvset startet jeden 'MovieClip' automatisch. Ohne ein 'stop()' im ersten Frame der Zeitlinie beginnen alle gleichzeitig: sofort. Die Aufrufe von '.play()', die später auftreten können, ändern nichts daran. – null