| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User 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 |
| | |
| | #2 (permalink) |
| eeeek! 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 }
__________________ Spiele spielen : Fußball Spiele : Rennspiele : Puzzle Spiele : Super Mario Spiele : Park Spiele |
| | |
| | #3 (permalink) |
| Neuer User 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.
|
| | |
| | #4 (permalink) |
| eeeek! 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; } ...
__________________ Spiele spielen : Fußball Spiele : Rennspiele : Puzzle Spiele : Super Mario Spiele : Park Spiele |
| | |
| | #5 (permalink) |
| Neuer User 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.
|
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |