| |||||||
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 |
| | #16 (permalink) |
| kalt... Registriert seit: Dec 2007
Beiträge: 115
|
@ omega psi : danke dass du dich noch beteiligst aber irgendwie versteh ich deinen letzten satz nicht "getChildAt liefert nur ein DisplayObject zurück. Du musst überprüfen, ob das child ein DisplayObject ist, und dann casten, sonst kriegst du einen TypeError." getChildAt liefer ja definitiv NUR ein displayObject falls vorhanden oder? wieso muss ich dass dann noch mal casten? |
| | |
| | #17 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
| Ein DisplayObject kann keine children haben, DisplayObjectContainer aber schon. Nur wenn das child ein DisplayObjectContainer ist, kann es eine eigene DisplayList haben. Mal anders formuliert: Jeder DisplayObjectContainer ist ein DisplayObject. Aber nicht jeder DisplayObject ist auch ein DisplayObjectContainer. -> deswegen der Cast.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #18 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
|
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #19 (permalink) |
| kalt... Registriert seit: Dec 2007
Beiträge: 115
|
@ Omega Psi : danke nochmal, der Unterschied war mir schon bewusst, ich hab mich halt nur gewundert, warum adamtoons zuerst mit "is DisplayObjectContainer" prüft ob getChildAt(i) einer ist und dann nochmals dieses child, dass er mittels getChildAt(i) vorher schon auf den datentyp geprüft hat, casted... ist das nicht doppelt gemoppelt? und zu dem uint... eieiei... das hättst mir auch eher sagen können ich hab für mein aktuelles projekt ja fast NUR uint benutzt... OH GOTT!!!!!!!
|
| | |
| | #20 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
| Ne, ist es nicht: Überprüfung auf Typ != Cast auf diesen Typ => zuerst prüfen, dann casten, sonst gibt's Ärger im Paradies.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #21 (permalink) |
| kalt... Registriert seit: Dec 2007
Beiträge: 115
|
ok, danke! ich hab zwar noch immer keine 100%ige vorstellung davon, was der grund dafür ist, aber da hätt ich wohl mein informatikstudium nicht nachm ersten semster abbrechen sollen ![]() aber ich werds mir merken und mich da mal informieren, danke nochmal für deine Zeit!!! |
| | |
| | #22 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
| Das hängt damit Zusammen, dass Typecasts nicht implizit durchgeführt werden im strict Mode. Deswegen der explizite Typecast an der Stelle.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #23 (permalink) |
| Neuer User Registriert seit: Feb 2009
Beiträge: 106
|
Hey ich habe die gleiche Problemstellung ... würde gerne alle children und unter children und alle unter unter children etc. eines movieclips entfernen. Bei den Beispielen hier bekomme ich irgendwie immer, dass der index außerhalb des Bereichs liegt ... ka ^^ ich hab dann das hier daraus gebastelt Code: private function removeAll(container:DisplayObjectContainer):void
{
for (var i:uint = 0; i < container.numChildren; i++)
{
if (container.getChildAt(0) is DisplayObjectContainer)
{
removeAll(DisplayObjectContainer(container.getChildAt(0)));
}
container.removeChildAt(0);
}
} vielen dank! Geändert von le_unam (01-02-2012 um 14:52 Uhr) |
| | |
| | #24 (permalink) | |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
| Zitat:
Du solltest das so aufbauen, um zu verhindern, dass Du mit Deinem Index außerhalb des Bereichs landest: ActionScript:
![]() Eigentlich genügt es vollkommen die direkten Nachkommen zu entfernen. Und dafür reicht dieser Code: ActionScript:
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! Geändert von Martin Kraft (01-02-2012 um 15:17 Uhr) | |
| | |
| | #25 (permalink) | |
| Neuer User Registriert seit: Feb 2009
Beiträge: 106
| Zitat:
also sagen wir ich mache: addChild(mc1); mc1.addChild(mc2); mc2.addChild(mc3); dann reicht am ende ein: removeChild(mc1); um alles sauber zu entfernen? Geändert von le_unam (01-02-2012 um 15:16 Uhr) | |
| | |
| | #26 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
| Quasi ![]() Wobei diese Methapher hinkt. Erhellender finde ich es, sich die Anzeigeliste als Baum vorzustellen. Wenn Du da einen Ast absägst, hast Du gleichzeitig auch alle an diesem Ast hängenden Zweige und Blätter zum Baum getrennt. Nach dieser Anweisung ist jedenfalls keines der Unterelemente mehr zu sehen. Ob sie aber wirklich sauber entfernt (-> von der Garbage Collection gefressen) werden können, hängt nicht davon ab, wie oft man in welchen Tiefen removeChild ausführt, sondern davon, ob es noch irgendwelche Referenzen und Event-Listener gibt, die auf dieses Objekt zeigen. mc1 z.B. ist so eine Referenz, die gelöscht werden sollte: ActionScript:
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! Geändert von Martin Kraft (01-02-2012 um 15:31 Uhr) |
| | |
| | #27 (permalink) |
| + Zimt & Zucker Registriert seit: Mar 2006 Ort: hinterm Mond gleich links
Beiträge: 2.041
| Es reicht die aktuelle Generation zu vernichten. Ältere Generationen zu exhumieren, wieder zu beleben um sie zu töten wird von den meisten Racheklubs (zB "Vergissmeinnicht e.V." oder "Internationale Vergeltungsvermittlung GoiH") als übertrieben angesehen. Es gibt da aber regionale Unterschiede. ![]() Es reicht, das Gesamtpacket vom Diesseits abzunabeln um sie für den Sensenmann zu markieren. ![]() Mehr zu dem Herrn mit schwarzer Kutte: Understanding garbage collection in Flash Player 9 | Adobe Developer Connection
__________________ anbei Grüße vom milchreis: Viva la [Silb] "Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!" [Von null auf Flash in einem Klick.] <<< klick |
| | |
| | #28 (permalink) |
| Neuer User Registriert seit: Feb 2009
Beiträge: 106
|
okay das gefällt mir alles sehr gut danke xD reicht es das absolute familienoberhaupt zu "nullen"? sind eventlistener auf die objekte das einzige was für den sensemann ausschlaggäbend ist? sprich, sind keine eventlistener mehr vorhanden die auf das kind zeigen und die eltern tot, wird der leichnahm auf jeden fall entsorgt? oder gibt es noch mehr zu beachten? kann man irgendwie prüfen ob der sensemann seinen job auch ordentlich erledigt hat? danke für die antworten! EDIT: Ah okay, hatte den link übersehen ... ich glaub ich verstehe es, danke fürs erste Geändert von le_unam (01-02-2012 um 15:41 Uhr) |
| | |
| | #29 (permalink) |
| Neuer User Registriert seit: Feb 2009
Beiträge: 106
|
während des flash-films können mit hilfe verschiedener button verschiedene funktionen aufgerufen werden, die movieclips mit weiteren children etc erzeugen ... außerdem einige variablen erstellen und eventlistener erzeugen ... all das soll beim "schließen" dieser funktion wieder entfernt werden. also remove ich den "master-movieclip". würdet ihr sagen ich sollte die erstellten variablen und auch eventlistener in ein array packen und dann am ende mit hilfe einer schleife entfernen, oder wie glaubt ihr is der sinnvollste weg für sowas? danke ;-) |
| | |
| | #30 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
|
So lange Du außerhalb dieses Objekts keine Variablen, Arrays o.ä. hast, die in das Objekt zeigen, ist das nicht nötig. Es geht nur darum, alle Verbindungen zur »Außenwelt« zu kappen!
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! Geändert von Martin Kraft (01-02-2012 um 16:03 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |