| |||||||
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) |
| ChronoGuard Registriert seit: Mar 2002 Ort: Saarbrücken
Beiträge: 2.649
| Klasse muss für URLLoader erben?
Hab ne Klasse XMLLoader, die von EventDispatcher erbt und mit einer URLLoader-Instanz eine xml-Datei lädt. Nutze ich diese Klasse XMLLoader in der Timeline, funktioniert alles. Setze ich diese Klasse in eine andere Klasse (die von Sprite erbt), wird das Complete-Event der URLLoader-Instanz nicht mehr gefeuert. Nach 20 min Fehlersuche und reduzierung auf's Kernproblem hab ich irgendwann die Klasse statt von EventDispatcher von Sprite erben lassen, und auf einmal ging es wieder. Hat jemand eine Erklärung dafür?
__________________ we will stop enhancing the truth in 3, 2, ... |
| | |
| | #2 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.139
|
Code? Ich würde vermuten, du machst was falsch.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #3 (permalink) |
| ChronoGuard Registriert seit: Mar 2002 Ort: Saarbrücken
Beiträge: 2.649
|
Ich vermute das auch. Aber ich verstehe es nicht. Hab mal zum testen noch das ganze "Projekt" angehängt. Ist nicht viel, nur zwei Klassen à 20 Zeilen. Lässt man wie gesagt in der XMLLoader-Klasse nicht von EventDispatcher sondern von Sprite erben, funktioniert alles. Timeline: PHP-Code: PHP-Code: PHP-Code:
__________________ we will stop enhancing the truth in 3, 2, ... Geändert von SpecOps-12 (27-08-2009 um 12:35 Uhr) |
| | |
| | #4 (permalink) |
| undefined Registriert seit: Jul 2001 Ort: Stuttgart
Beiträge: 1.839
|
ich würde die load Methode des URLLoaders nicht direkt beim instantiieren aufrufen, sondern diese nochmal von außen über eine zusätzlich Methode anstoßen. Vermutlich kommt dein Listener zu spät in der Album Klasse. Ich hoffe Florian korrigiert mich wenn ich da jetzt falsch vermute ;o) PHP-Code:
__________________ mfg Frank Geändert von mildesign (27-08-2009 um 12:51 Uhr) |
| | |
| | #5 (permalink) |
| ChronoGuard Registriert seit: Mar 2002 Ort: Saarbrücken
Beiträge: 2.649
|
Das hatte ich zunächst auch vermutet. Aber das Complete-Event wird bereits in der XMLLoader-Klasse schon nicht gefeuert. (Jedoch schon, wenn ich XMLLoader direkt in der Timeline instanziere). Und was hat es mit der Änderung des Verhaltens auf sich, wenn ich eine andere Erbschaft angebe? Das macht für mich keinen Sinn.
__________________ we will stop enhancing the truth in 3, 2, ... |
| | |
| | #7 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Den Ladevorgang solltest du definitiv über eine eigene Methode anstoßen, egal ob es nun daran liegt, oder nicht. Hast du mal versucht, das useWeakReference wegzulassen? (warum ist es überhaupt da?) Vielleicht werden DisplayObject Instanzen später eingesammelt? Nur am rumraten ...
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #8 (permalink) |
| ChronoGuard Registriert seit: Mar 2002 Ort: Saarbrücken
Beiträge: 2.649
|
@Janoscharlipp Das war der richtige Tip. Es lag am useWeakReference. Das hab ich mir angewöhnt, das quasi immer auf true zu setzen. Edit: Ich versteh auch nicht, warum hier der Listener gekickt wird. Die Referenz, auf die der Listener angemeldet wird, bleibt doch bestehen. Der Garbage-Collector dürfte den Listener doch gar nicht einsammeln.
__________________ we will stop enhancing the truth in 3, 2, ... Geändert von SpecOps-12 (27-08-2009 um 13:54 Uhr) |
| | |
| | #9 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.139
|
Der Listener ist nur eine Funktion. Es geht um das aufrufende Objekt, dass dann schon weg ist und der Listener nicht mehr aufgerufen werden kann -> es gibt ja keinen Aufrufer mehr.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #10 (permalink) |
| ChronoGuard Registriert seit: Mar 2002 Ort: Saarbrücken
Beiträge: 2.649
|
Ach Alter, die Funktion in der Album-Klasse *vor den Kopf hau* Die Instanz der XMLLoader-Klasse existiert ja nur im Gültigkeitsbereich der Funtion "init" und ist dann natürlich wieder fort. Ich habs kapiert. Eine Frage bleibt noch: Warum funktioniert das ganze trotzdem, wenn die XMLLoader-Klasse von Sprite erbt?
__________________ we will stop enhancing the truth in 3, 2, ... |
| | |
| | #11 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Hatte oben ja schon vermutet, dass DisplayObject's später eingesammelt werden, vielleicht haben sie intern eine Gnadenfrist von einem Frame (da ist sicher auch irgendein init, added, enterFrame oder sonstwas Listener am Werk)
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |