Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-06-2004, 08:24   #1 (permalink)
Neuer User
 
Benutzerbild von k3nnymc71
 
Registriert seit: Aug 2002
Ort: Meißen
Beiträge: 92
onEnterFrame und function

Hallo ich bauen gerade Bilde Loader function. Diese ist in 5 weitere functionen Aufgeteilt. Hier mal schnell ein Planungsbild:

hmm irgendwie find ich das net mehr wie man bilder einfügt

und jede der unterfunctionen läuft in einer onEnterFrame prozedur.Aber nicht gleichzeitig. Wenn die erste function fertig ist wird die nächste aufgerufen und das onEnterFrame der fertigen gelöscht. Da aber alle onEnterFrame auf this.onEnterFrame = function() laufen wird zwar die 1. ausgeführt aber die 2. überhaupt nicht. Die Frage ist warum? Wenn ich bei der vorhegehenden das onEnterFrame lösche wir das dann auch für die nachfolgenden functionen gelöscht??Wenn ja wie kann man dieses Problem umgehen?

Momentan hab ich das so gelöst das ich mich mit den onEnterFrame prozeduren jeweils auf einen anderen dummy mc beziehe was mir aber nicht wirklich gefällt.


nochmal ein kleines Beispiel:

Code:
i = 0;
a = 0;


//zweite function
second = function() {
	this.onEnterFrame = function() { //wird garnichtmehr ausgeführt
		if(a != 100) {
			a++
			trace(a);
		}else{
			trace("function abgeschloßen");
		}
	};
};

//erste function   
first = function() {
	this.onEnterFrame = function() {
		if(i != 50) {
			i++
			trace(i);
		}else{
			//zweite function aufrufen
			second();
			delete this.onEnterFrame;
		}
	};
};


//aufruf

first();

Hoffee jemand versteht was ich meine und kann mir helfen
Angehängte Grafiken
Dateityp: jpg loaderkonzept.jpg (20,5 KB, 5x aufgerufen)
k3nnymc71 ist offline   Mit Zitat antworten
Alt 17-06-2004, 08:48   #2 (permalink)
eeeek!
 
Benutzerbild von juggernart
 
Registriert seit: Aug 2002
Ort: Augsburg
Beiträge: 210
durch den Aufruf second(); überschreibst Du die onEnterFrame Prozedur, die in first gesetzt wurde.
Mit dem darauf folgenden delete this.onEnterFrame; löscht Du sie gleich wieder! Daher geht das nicht.

else{
//zweite function aufrufen
second();
// delete this.onEnterFrame; <--das löscht die onEnterFrame, die in second gesetzt wird
}
juggernart ist offline   Mit Zitat antworten
Alt 17-06-2004, 08:58   #3 (permalink)
Neuer User
 
Benutzerbild von k3nnymc71
 
Registriert seit: Aug 2002
Ort: Meißen
Beiträge: 92
Aso also hab ich richtig gelegen das wenn ich in first die onenterFrame lösche das die von second gleich mit weg ist. Das mit dem überschreiben wusste ich garnicht.Ich dachte immer wenn ich die von first nicht löschen würde die von second garnicht ausgeführt weil first weiter läuft. Aber dass die sich überschreiben macht die Sache um vieles leichter. Vielen Dank für den Tip.
k3nnymc71 ist offline   Mit Zitat antworten
Alt 17-06-2004, 09:22   #4 (permalink)
eeeek!
 
Benutzerbild von juggernart
 
Registriert seit: Aug 2002
Ort: Augsburg
Beiträge: 210
nochmal aushol...

Pro Zeitleiste kann logischerweise nur eine onEnterFrame Prozedur existieren!

Das "this" in "this.onEnterFrame" deiner Funktionen first und second bezieht sich auf die Zeitleiste, in der die functionen stehen.

durch den Aufruf von first weist Du der Zeitleiste eine onEnterFrame Prozedur zu.
durch den späteren Aufruf von second ersetzt du die erste zugewiesene onEnterFrame Prozedur durch eine neue.
Durch die direkt darauf folgende Anweisung "delete this.onEnterFrame" löscht du die eben zugewiesene Prozedur.

wie gesagt, es kann nur eine onEnterFrame pro Zeitleiste geben.

Wenn du die onEnterFrame am ende löschen willst, dann hier:
...
}else{
trace("function abgeschloßen");
delete this.onEnterFrame;
}
...
juggernart ist offline   Mit Zitat antworten
Alt 17-06-2004, 09:28   #5 (permalink)
Neuer User
 
Benutzerbild von k3nnymc71
 
Registriert seit: Aug 2002
Ort: Meißen
Beiträge: 92
Jo is klar hattes schon beim ersten mal verstanden. Hab mich villeicht bisschen blöd ausgedrück. Hab jetzt alle delete this.onEnterFrame bis auf das in der letzen function gelöscht und funktzt wunderbar. Vielen dank für deine Hilfe.
k3nnymc71 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele