| |||||||
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: Feb 2009
Beiträge: 99
| removeChild Verständnisfrage
Hallo! Mal eine Verständnis-Frage: nehmen wir an ich mache folgendes: addChlid(container); container.addChild(nochEinContainer); nochEinContainer.addChild(bild1); nochEinContainer.addChild(bild2); nochEinContainer.addChild(bild3); und habe noch einen Timer innerhalb von nochEinContainer laufen, welcher noch nicht zu Ende ist und mache dann removeChild(container) Was passiert dann genau? Sind dann alle Child und "Unter-Childs" und Tmer etc inklusive "container" und allem "gelöscht"? Also der Timer auch weg, alles aus dem SPeicher raus etc? Mir macht das nämlcih derzeit echt Probleme. Danke für die Aufklärung! ![]() ...Malo |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 1.184
|
removeChild(container) entfernt container mit allen untergeordneten Objekten aus der DisplayList. Der Timer läuft weiter, container wird nur nicht mehr auf der Bühne angezeigt. In AS3 besteht der Flashplayer aus zwei Teilen: 1. ActionScript Virtual Machine (AVM) 2. Rendering Engine (DisplayList, Stage) mit new Sprite() wird ein Sprite in der AVM erstellt. addChild() fügt Sprite dann nur noch der DisplayList hinzu. P.S.: sowas kann man übrigens ganz einfach selber ausprobieren, hab ich eben auch gemacht, damit ich keinen Müll schreibe! P.P.S.: Haha, ich hab gerade mal nachgesehen, was Sprite eigentlich heißt: Elfe, Kobold, Wicht
__________________ EDV = Ende Der Vernunft Geändert von hmpf (02-03-2009 um 01:15 Uhr) |
| | |
| | #3 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 11.856
|
Wenn du keine anderen Referenzen auf eines der Objekte hälst und es keine EventListener mehr gibt, dann werden die bei Zeiten Garbage collected. Der Timer hat damit erstmal nichts zu tun.
__________________ github: https://github.com/floriansalihovic/L18nExample <florian xmlns:speaker="www.beyondtellerrand.com/ffk11/speakers_sessions" xmlns:trainer="http://www.beyondtellerrand.com/ffk11/workshops" /> and @ g+ |
| | |
| | #4 (permalink) |
| Home Flasher Registriert seit: Apr 2004 Ort: Engelskirchen
Beiträge: 345
|
Hallo, mit removeChild() entfernt man ein DisplayObject von der Bühne, man nimmt es aus dem Anzeigestapel heraus. Trotzdem bleibt die Instanz noch ansprechbar. Man so eventuell vorgehaltene Dienste dieser Instanz nutzen oder aber Daten aus dieser Instanz auslesen. Um sie also ganz zu entfernen, muss der entsprechenden Instanz auch noch der Wert null zugewiesen werden. Dann kann der GC sie aus dem Speicher entfernen und damit physikalisch vernichten. Beispiel: An einer Stelle hast du z.B. MovieClip-Instanzen angelegt und in den Anzeigestapel aufgenommen: ActionScript:
Beim Aufräumen (Zerstören) der Instanz, in welcher du die eben beschriebenen Instanzen erstellt hast, codierst du dann z.B. folgendes: ActionScript:
Gruß vom Flash Doc
__________________ Erst Flash CS5 und dann Fläsch' Bier !!! |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 1.184
|
Auch wenn es sich nach Klug*******erei anhört: ActionScript:
__________________ EDV = Ende Der Vernunft |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Jul 2008
Beiträge: 117
|
Hallo! Ich habe hier ein ähnliches Problem. Ich füge meinen DisplayObjectContainer ein Objekt, einer selbst erstellten Klasse hinzu die von der MovieClip Klasse erbt. In dieser Klasse definiere ich ebenfalls ein TimerObjekt, das die ganze Zeit durchläuft. Wenn ich nun das Object von meinem DisplayObjectContainer mit removeChild() entferne, wird es zwar entfernt, jedoch läuft der Timer im Hintergrund weiter. Auch das "Objekt = null" hat mir hier nicht weitergeholfen? Muss ich hier den Timer extrig deaktivieren oder habe ich auch noch andre Chancen? Besten Dank Chris |
| | |
| | #8 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 11.856
|
Alle Listener entfernen und am besten auch interne Prozesse stoppen!
__________________ github: https://github.com/floriansalihovic/L18nExample <florian xmlns:speaker="www.beyondtellerrand.com/ffk11/speakers_sessions" xmlns:trainer="http://www.beyondtellerrand.com/ffk11/workshops" /> and @ g+ |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |