Zufällig movie abspielen.

Ardaric

Erfahrenes Mitglied
Ich sitze hier an etwas, das möchte ich machen. Doch habe ich ein paar Probleme.

Ich habe jetzt 9 MCs gebastelt (mov1-mov8+mov_main). Dies Liegen alle in einer separaten Ebene. Meine Szene1 ist 1 Frame lang.

mov_main beinhaltet ein this.stop(); im letzten Frame.
In Frame1 von Szene1 liegt folgender Code:
Code:
this.mov0.stop();
this.mov1.stop();
this.mov2.stop();
this.mov3.stop();
this.mov4.stop();
this.mov5.stop();
this.mov6.stop();
this.mov7.stop();
this.mov8.stop();

var movArray:Array = new Array(new Array("mov1",false),
								new Array("mov2",false),
								new Array("mov3",false),
								new Array("mov4",false),
								new Array("mov5",false),
								new Array("mov6",false),
								new Array("mov7",false),
								new Array("mov8",false));
trace(twoDArray);

var i = 8;
if(i == 0) {
	for(ii=7;, ii>-1;, ii--;) {
		movArray[ii, 1] = false;
	}
}
var bool = true;
while (bool) {
	var iRandom = mov+random(8);
	if(movArray[iRandom, 1] == false) {
		movArray[iRandom, 0].play();
		movArray[iRandom, 1] = true;
		i--;
		bool = false;
	}
}

this.goToAndPlay(1);



Was ich möchte:

Die Flash soll geladen werden. Dann wird mov_main eh automatisch gestartet und bis zum Ende abgespielt. Soweit so gut.

Dann soll ein zufälliger mov aus dem Arra abgespielt werden und als true geflagged werden, damit er nicht wieder abgespielt wird.

Wenn alle Movies durch sind, sollen alle movies wieder als false geflagged werden.

Ich weiß nur nicht, wo ich welchen Code hineinpacken soll. Wichtig ist, dass mov_main NIE WIEDER abgespielt wird, außer die HTML-Seite wird neu geladen durch F5 oder so.

Also das meiste habe ich schon, aber mit AS kenne ich mich garnicht aus. Ich habe jetzt versucht das meiste alleine zu programmieren.

Vielen Dank für eure Hilfe.
 
Zuletzt bearbeitet:
Hi,

zum einen führd das:
Code:
this.goToAndPlay(1);
bestenfalls zu einer Endlosschleife und sollte entfernt werden.

Zum anderen: wo ist "twoDArray" definiert, oder ist das nur ein Tippfehler?

So
Code:
var iRandom = mov+random(8);
kannst Du keinen Index zusammenbauen, da es sich bei "mov" um eine nicht definierte Variable und keinen String handelt.

Statt mit einer while-Schleife solltest Du ereignisbasiert arbeiten, so dass ein komplett abgespielter Clip eine Nachricht an die Hauptzeitleiste sendet, wenn der nächste abgespielt werden soll.

Dann fällt mir auf, dass Du die Instanznamen als Strings in Deinem Array ablegst - daher kannst Du die Clips nicht so ansprechen:
Code:
movArray[iRandom, 0].play();
, sondern müsstest erst eine Referenz aus dem String bilden:
Code:
this[movArray[iRandom, 0]].play();
(eleganter wäre es, gleich die Instanzen und nicht nur die Namen im Array abzulegen)

Poste bitte mal die .fla. dann korrigiere ich die Fehler gerne.

Gruß
.
 
Hat sich schon erledigt. Habe die Lösung nicht gebraucht, weil ich mich für etwas anderes entschieden habe.

Trotzdem Danke für deine Mühe!
 

Neue Beiträge

Zurück