Nach attachMovie Funktion aufrufen

B_sti

Grünschnabel
Hallo Leute,

ich will ein MovieClip aus der Bibliothek zur Laufzeit laden, dies mach ich mit attachMovie:
PHP:
		var ZoomWindow:MovieClip = attachMovie("ZoomWindow","ZoomWindow",getNextHighestDepth());
Funktioniert soweit auch wunderbar, nun will ich aber anschließen eine Funktion "loadit()" die in ZoomWindow steckt aufrufen, dies funktioniert nicht wenn ich die Zeile
PHP:
ZoomWindow.loadiit()
direkt anschließen aufrufe, ich denke das zu diesem Zeitpunkt der MC "ZoomWindow" von attachMovie noch nicht vollständig geladen ist. Und genau hier ist mein Problem, wie bekomme ich den MC geladen und rufe anschließen eine darin steckende Funktion auf?

Grüße,
Basti

P.S. Durch herumprobieren und suchen bin ich leider auf keine Lösung gestoßen :rolleyes:
 
Hallo,

pack das attachMovie und die objectmethode mal in eine funktion und rufe die dann auf ,also so sollte es gehen:

Code:
function init() {
	var ZoomWindow:MovieClip = attachMovie("ZoomWindow", "ZoomWindow", this.getNextHighestDepth());
	ZoomWindow.loadit = function() {
		trace("f u n z t");
	};
	ZoomWindow.loadit();
}
init();

Ist aber AS1.0 OOP , gibt bestimmt schönere lösungen wie man es machen könnte zb eine externe klassendatei anzulegen und dann halt über
Code:
 var myObj = new ZoomWindow() 
myObj.loadit();
die Methode anzusprechen.
 
Hi,

wenn Du die Funktion "von außen" injizieren willst, klappt es so, wie Denniz sagte.

Ansonsten musst Du nach dem Instanzieren mindestens einen Frameaufruf warten, da Flash immer zuerst den Code der aktuellen Zeitleiste (und erst danach den in untergeordneten) parst. Eine Funktion in einem frisch instanzierten MC ist also noch nicht sofort bekannt:
Code:
var foo = this.attachMovie("foo", "foo", 1);

this.onEnterFrame = function() { // einen Frame warten
  delete this.onEnterFrame;
  foo.meineFunktion(); // <-- klappt
}

Gruß
.
 

Neue Beiträge

Zurück