Afspille tilfældigt movieclip

Se Frogman's brugerprofil
Indmeldt: 11-05-2009
Indlæg: 28
Er offline

Hej.

Jeg er ved at lave et skydespil hvor fjenden skal hoppe frem forskellige steder på skærmen. Jeg har så lavet 4 forskellige movieclips hvor fjenden tweener frem på skærmen og placeret dem forskellige steder på scenen.

Så skal jeg bare have disse movieclips til at blive afspillet i tilfældig rækkefølge.

Her er min kode:

var clips:Array=new Array(bully1_mc,bully2_mc,bully3_mc,bully4_mc);

var movie1:int;
var movie2:int;
var movie3:int;
var movie4:int;

var arr2:Array = [];

var myTimer:Timer = new Timer(100);

myTimer.addEventListener(TimerEvent.TIMER, onTimerEvent);

function onTimerEvent(e:TimerEvent):void{

while (clips.length > 0) {
arr2.push(clips.splice(Math.round(Math.random() * (clips.length - 1)), 1)[0]);
trace(arr2);
}

movie4 = movie3;
movie3 = movie2;
movie2 = movie1;
movie1 = arr2.length-1;

//dette var et forsøg, men det virker ikke:
movie1.gotoAndPlay("start");
}

myTimer.start();

På forhånd tak!

Kommentarer

Se Artmos's brugerprofiladministrator
Indmeldt: 19-04-2007
Indlæg: 259
Er offline

Prøv med det her:

var clips:Array=new Array(bully1_mc,bully2_mc,bully3_mc,bully4_mc);
var arr2:Array = [];
 
for(var i:int = 0; i < clips.length; ++i)
{
	var index:int = int(Math.random()*clips.length);
	while(arr2.indexOf(clips[index]) != -1)
	{
		index = int(Math.random()*clips.length);
	}
	arr2.push(clips[index]);
}
Se Frogman's brugerprofil
Indmeldt: 11-05-2009
Indlæg: 28
Er offline

Tak for svaret. Men jeg har fået den til at lave arrayet i tilfældig rækkefølge, men jeg ved bare ikke hvordan jeg afspiller de forskellige movieclips i den rækkefølge som er blevet genereret?

Giver det mening?

Se Artmos's brugerprofiladministrator
Indmeldt: 19-04-2007
Indlæg: 259
Er offline
var myTimer:Timer = new Timer(1000, arr2.length);
myTimer.addEventListener(TimerEvent.TIMER, onTimerEvent);
var counter:int = 0;
 
function onTimerEvent(e:TimerEvent):void
{
Movieclip(arr2[counter]).gotoAndPlay("start");
counter++;
}
 
myTimer.start();
Se Frogman's brugerprofil
Indmeldt: 11-05-2009
Indlæg: 28
Er offline

Når jeg prøver det får jeg denne fejl:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Klassev_fla::MainTimeline/onTimerEvent()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()

Se Frogman's brugerprofil
Indmeldt: 11-05-2009
Indlæg: 28
Er offline

Jeg fandt ud af det. Jeg skulle bare remove min eventlistener når counter > arr2.length - 1 Very Happy

Mange tak for hjælpen!!

Se Artmos's brugerprofiladministrator
Indmeldt: 19-04-2007
Indlæg: 259
Er offline

Ellers så tror jeg du skal have stoppet din timer, hvis du ikke har sat den til kun at køre et bestemt antal gange.