Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-06-2010, 15:56   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 491
Exclamation CMS: addChild / removeChild & Listener

Ich habe da eine Art von CMS (in ActionScript 3).
Eine fertige CMS Lösung kann und will ich aus verschiedenen Gründen nicht verwenden - unter anderem deshalb, weil es sich nicht um ein richtiges CMS handelt.

Dieses besagte CMS lädt eine externe SWF als Seite ein und zeigt diese dann mit addChild(_loader); in einem Container an.
Wenn eine neue externe SWF geladen werden soll, dann wird der alte Inhalt mit removeChild entfernt und dann mit addChild der neue Inhalt in den Container eingebracht.

Das funktioniert auch soweit - allerdings gibt es jetzt noch einen kleinen Haken:
Manchmal registrieren diese externen SWF auf globaler Ebene Listener-Funktionen.
Wenn die externe SWF-Seite schon lange fort ist, dann erhalte ich z.B. bei einem globalen CLICK-Event eine NULL-Exception, da die Listener-Funktion, die sich in der externen SWF befand, schon lange mit ihr verschwunden ist.

Von daher habe ich jetzt zu diesem Thema zwei Fragen:
  1. Wie deregistriere ich _alle_ Listener einer externen SWF?
  2. Ist der Seitenaustausch mit addChild / removeChild wirklich soo elegant? Ginge es auch eleganter / speicherschonender / ... ?

Vielen Dank für eure Antworten im Voraus!
Mit freundlichen Grüßen
Firemice
Firemice ist offline   Mit Zitat antworten
Alt 22-06-2010, 17:45   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Wie deregistriere ich _alle_ Listener einer externen SWF?
Ganz normal mit removeEventListener vor dem unload oder removeChild.

Zitat:
Ist der Seitenaustausch mit addChild / removeChild wirklich soo elegant? Ginge es auch eleganter / speicherschonender / ... ?
Ohne addChild kein Rendern des Views...
  Mit Zitat antworten
Alt 22-06-2010, 19:34   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 491
Exclamation

Leider ist es aber so, dass das manchmal eben vergessen wird.
Gibt es die Möglichkeit einer automatischen Bereinigung?

Mit freundlichen Grüßen
Firemice
Firemice ist offline   Mit Zitat antworten
Alt 23-06-2010, 00:31   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Leider ist es aber so, dass das manchmal eben vergessen wird.
Was ist denn das für eine Begründung? Ein guter Programmierer achtet darauf, dass alle Verweise und Listener entfernt werden, bevor die SWF entladen wird. Solange noch "starke" Verbindungen zur SWF bestehen, kann die im Hintergrund arbeitende Garbage Collection das Objekt auch nicht entfernen. Und irgendwann läuft dir zudem der Speicher über...
  Mit Zitat antworten
Alt 23-06-2010, 10:15   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 491
Exclamation

Gibt es in AS3 auch Dekonstruktoren?

Mit freundlichen Grüßen
Firemice
Firemice ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
addchild, cms, externe swf, listener, removechild

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Scrolling Problem ( removeChild & addChild Problem ) Jakozk ActionScript 3 2 28-02-2010 19:12
addChild, removeChild mit AS3... Koyocreative ActionScript 3 1 14-01-2010 21:56
addChild und removeChild uncle.sam ActionScript 3 13 28-02-2009 22:45
[Flash CS3] Verständnisfrage addChild removeChild Anzeigeobjekte tenada Flash Einsteiger 0 27-11-2008 12:19
Listener (Mouse Listener) in Klasse in .AS Datei verwenden. Wie? peterschmidt ActionScript 2 2 26-12-2007 09:08


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

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


Copyright ©1999 – 2012 Marc Thiele