Frage zu Funktionsaufrufen

Xylankant

Grünschnabel
Hallo Leute!
Ich habe mir (mal wieder) vorgenommen, mir eine neue HP zu schreiben mit Flash. Naja, Design und so steht, jetzt geht's an den Code *gg*

Ich habe hier ein Problem mit einer selbsgeschriebenen Funktion (bzw. mit mehreren).

Der Hintergrund ist der, dass ich eine zweigeteilte HP haben möchte, oben soll etwas in einen Container (cont1) geladen werden, und erst wenn der fertig ist mit laden soll unten in einen anderen Container (cont2) der Inhalt für unten geladen werden.

Ok, also, erstmal die Funktion für das Laden generell (übrigens erlernt mit den super Tutorials hier auf der Seite *gg*), ich kommentier die einfach mal ausführlich aus...:
Code:
function loadToContainer(c, f, t){ // c ist der Container, f ist der zu ladende Inhalt, t eine Message, die angezeigt wird

	c.loadMovie("./swf/" + f); // lade den film f auf dem Ordner swf in den Container c

	this.onEnterFrame = function(){

		laden.gotoAndStop(2); // laden ist eine Ladeanimation, die im ersten Frame nichts anzeigt und im zweiten eben eine Animation "Laden, bitte warten" hat

		laden.what.text=t; // what ist ein dynamisches Testfeld, t der text, welcher Inhalt gerade geladen wird

		lcars.r11._visible=false; // ein Ladebalken

		loaded = c.getBytesLoaded();

		toload = c.getBytesTotal();

		if(loaded >= 5){

			lcars.r11._visible=true; // Ladebalken sichtbar machen

			prozent = 100 * loaded / toload;

			laden.percent.text=Math.round(prozent) + "%";

			lcars.r11.balken._xscale = prozent; // balken aufbauen

			lcars.r11.balken._alpha = prozent; // ballen einfaden

			if(loaded == toload){

				delete this.onEnterFrame;

				laden.gotoAndStop(1);

			}

		}

	}

}

soweit, so gut.

Wenn ich diese Funktion "manuell" mit Argumenten füttere, dann t das wunderbar, also zB
Code:
loadToContainer(cont1, "zahlen.swf", "Zahlen werden geladen");
tut genau das erwartete

So, jetzt will ich ja wie gesagt mehrere Inhalte laden, nacheinander.
Flash bietet ja bekanntlich keine wait()-Funktion o.ä. an, also habe ich das mit einem Intervall umgangen.
Ich sage direkt: Irgendetwas geht da nicht richtig, ich habe also mal ein Dynamisches Textfeld "bla" erzeugt, um die Übergaben zu testen.

Code:
finished = 0; // ist etwas am Laden bzw. ist es fertig? (0 = nichts wird geladen, != 0 etwas wird geladen)

function loadTest(c, f, t){ //c, f, t wie oben

	clearInterval(loadTestID); //das Intervall direkt wieder löschen, ich will die Funktion ja 
net unendlich aufrufen ^^

	if(finished == 0){ // wenn nichts geladen wird

		finished++; // anzeigen, dass ein Ladevorgang läuft

		loadToContainer(c, f, t); // die obige Funktion mit den Parametern c, f, t aufrufen

	}else{ // wenn gerade etwas geladen wird

		loadTestID = setInterval(loadTest, 1000, c, f, t); // eine sekunde warten und 
nochmal schauen, ob was geladen wird

		bla.text = c; // ausgeben in welchen Container geladen werden soll (wie gesagt 
zu Testzwecken)

	}

}

function loadContent(c, f, t){ // c, f, t wieder wie oben

	loadTestID = setInterval(loadTest, 1000, c, f, t); // loadTest ist eine Funktion, die testet, ob gerade etwas geladen wird und dann dementsprechend wartet

}
soooo

wenn ich jetzt einfach einen Aufruf mache wie
Code:
loadContent(cont1, "bla.swf", "Ich lade bla");
dann tut's das wunderbar.

schreibe ich aber folgendes:
Code:
loadContent(cont1, "bla.swf", "Ich lade bla");

loadContent(cont2, "foo.swf", "Ich lade foo");
dann erscheint nach 2 sekunden im Dynamischen Textfeld "_level0.cont1"
Erwartet hätte ich "_level0.cont2", denn die Ausgabe "_level0.cont1" sagt mir ja irgendwie, dass der Aufruf von cont2, "foo.swf", "Ich lade foo" garnicht angekommen ist...

Woran liegt das? Kann mir da einer von euch helfen? Ich hoffe ja, denn sonst bin ich wohl verloren ^^

mfG,
Xylankant

Nachtrag: Hab mal grad probiert was passiert, wenn ich einen Button mit dem Aufruf von cont2 und so weiter belege...dann klappt alles *wunderbar* so wie ich es haben will...das kann doch net sein ^^
 
Zuletzt bearbeitet:
Ok, mal Pause gemacht, was gegessen und laute Musik gehört, dann habe ich das Problem selbst gelöst ^^

Code:
loadContent(cont1, "zahlen_gross.swf", "Matrix");

loadContentID = setInterval(loadContent, 1, cont2, "zahlen_gross.swf", "bla"); // 1ms (!) delay reicht, damit alles geht, wie es soll *g*

Dank an die, die vll gerade eine Antwort schreiben wollten, oder sich wegen mir den Kopf zerbrochen haben *g*
 
Zurück