| |||||||
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: Nov 2001
Beiträge: 33
|
Moin, die Funktionsweise des folgenden Codes erschließt sich mir einfach nicht: PHP-Code: PHP-Code: Danke für die Hilfe Grüße EmsOne |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.321
|
aktuell wird ein mc angelegt alles was im mc drinn ist muss erst noch angelegt werden; vorher existiert es noch nicht. das anlegen erfolgt im nächsten frame (im nächsten zyklus), dann werden auch die scripte im mc ausgeführt. http://www.seibsprogrammladen.de/fra...ispiele/flash6 -> Grundwissen ... wer beginnt wann: Ausführungsreihenfolge von Scripten
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (24-04-2007 um 02:33 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Nov 2001
Beiträge: 33
|
moin, danke für den hinweis, diese zusammenhänge waren mir so noch nicht bewusst. wenn ich das richtig verstehe, kann ich erst in einer onLoad funktion auf die AS-Inhalte eines Objekts aus der Bibliothek zugreifen, denn der code innerhalb dieser onLoad funktion wird erst ausgeführt, wenn das Objekt 'vollständig' geladen wurde. ich würde das gerne gleich mal ausprobieren, aber ich weiß leider nicht, wie ich eine onLoad funktion für ein objekt (in meinem bsp: theClip) definieren soll, dass nur in meiner bibliothek existiert, aber noch nicht auf der bühne ist (klar, genau den vorgang gilt es ja zu überwachen). so gehts auf jeden fall nicht: PHP-Code: PHP-Code: emsone |
| | |
| | #4 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.321
|
um sowas nicht jedem einzeln erklären zu müssen habe ich eine demo-fla gemacht - siehe link in #2 das zip dort bitte laden und genau ansehen.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (24-04-2007 um 04:29 Uhr) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Nov 2001
Beiträge: 33
|
das habe ich bereits getan, aber in deinem beispiel (wer_beginnt_wann.fla) existieren die objekte, auf denen die onLoad funktion definiert wird, bereits auf der bühne. in meinem fall existieren sie nur in der bibliothek. insofern lässt sich eine lösung für mein problem nicht vollständig aus deinem demo-fla ablesen. zudem erschließt sich mir die notwendigkeit einer onClipEvent(load) ereignisprozedur, angehängt an die instanz des zu ladenden objektes, ebenfalls nicht aus dem demo-fla. die flash-hilfe sagt ebenso nichts dazu. ich hab ja echt verständnis dafür, dass man keinen bock hat, alles immer nochmal zu erklären, aber es wäre super, wenn du mir etwas auf die sprünge helfen könntest. grüße emsone |
| | |
| | #6 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.321
|
alles muss immer "fix und fertig" sein und 10.000% überein stimmen - man kann auch mal selbst was probieren. schau mal in testB_mc rein: da steht z.b. #initclip // dieser programmteil initialisiert dieses symbol trace("initclip in testB_mc"); #endinitclip trace('script in der zeitleiste von: '+this); hast du dir das angesehen? das commando in der flash-hilfe nachgelesen? ----------------- onClipEvent(load) veraltete syntax - wird dennoch in der flash-hilfe erklärt. das wird aufgerufen, wenn das objekt zum ersten erscheint. bei objekten, die sich auf dem ersten frame befinden geht es nicht, weil: die erscheinen nicht, die sind schon da. neuere syntax: this.testA.onLoad = fOnLoad; bzw. unnötig, weil es das selbe ist wie alles, was auf der zeitleiste steht. das wird auch ausgeführt, wenn das objekt zum ersten mal erscheint. und es ist egal, ob das "erscheint", weil es extern geladen wurde, oder aus der bib, oder weil in eine neue zeitspur gesprungen eine instanz vorliegt. ------------------ unschöne lösung, aber vielleicht kommst du damit klar? Code: mcClip = mcTest.attachMovie("theClip", "theClip", 0);
mcClip.onEnterFrame=function(){
if (this.xxx!=undefined)
{ // jetzt ist es vorhanden
delete this.onEnterFrame;
}
} und/oder das mc kann selbst auslösen, wann es initiiert wurde. z.b. im mc: _level0.fIchBinDa(this); wenn die ursache bekannt ist, dann sollte man doch selbst wege finden können, das problem zu lösen.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (24-04-2007 um 23:21 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |