| |||||||
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: Jan 2012
Beiträge: 8
| komplette Bühne leeren
hallo zusammen, habe mal eine grundlegende Frage: gibt es in AS3 einen Befehl, der meine komplette Bühne leert? also alles was im bisherigen Verlauf auf die Bühne platziert worden ist entfernt? Habe einen Button und bei einem Klick möchte ich eine neue Ansicht erstellen; d.h. alles was bisher auf der Bühne ist und durch verschiedenen Klassen erstellt worden ist soll entfernt werden, und ich kann durch die Funktion bei meinem Klick die Bühne wieder mit neuen sachen füllen. Danke schon mal für antworten! grüße |
| | |
| | #2 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.164
|
Natürlich kann man alle Anzeigeelemente innerhalb eines beliebigen DisplayObjectContainers (also auch der stage) entfernen: 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! |
| | |
| | #3 (permalink) |
| Keine Panik Registriert seit: Apr 2010 Ort: Düsseldorf (im ernst)
Beiträge: 1.868
| PHP-Code: wenn sie noch Event-Listener haben, oder Verweise auf die Objekte bestehen bleiben die weiter im Speicher erhalten. am besten du fügst den Objekten eine dispose-Funktion zu, die sich um das aufräumen kümmert. um am Beispiel deiner ViewStart-Klasse zu bleiben, die du im anderen Thread gezeigt hast: PHP-Code: |
| | |
| | #4 (permalink) | ||
| Neuer User Registriert seit: Jan 2012
Beiträge: 8
|
danke nochmal für eure Antworten! dafür bekommt ihr auch den Link für das Spiel wenn es fertig ist ![]() @thomas: hab auch gar kein so großes Chaos, mich vielleicht nur etwas unverständlich ausgedrückt. in meiner Main lege ich auch nur ein Objekt (m_ViewStart) auf die stage. "m_ViewStart" greift auf die "startansicht" aus der Klasse ViewStart zu, wo Objekte aus unterschiedlichen Klassen erstellt werden. hier mein Code: Zitat:
wenn ich das jetzt richtig verstanden habe, müsste ich doch "nur" eine function in der Main schreiben die m_ViewStart aus dem display nimmt und auch löscht (geht das auch mit "=null"?). z.b. Zitat:
das mit der dispose-Methode habe ich noch nicht ganz verstanden...werde mich aber diesbezüglich mal schlau machen hoffe meine Fragen sind nicht allzu doof... | ||
| | |
| | #5 (permalink) | ||
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.164
| Zitat:
Zitat:
»Von egal wo« ist keine zulässige Antwort
__________________ 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! | ||
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Jan 2012
Beiträge: 8
|
hatte gerade noch eine andere Idee, was aber mein problem nicht löst. habe eine neue Klasse LogicView erstellt, die meine ganzen Menüansichten verwalten soll. also konkret bei mir jetzt ob es meine Startansicht oder Infoansicht anzeigen soll. von der Main aus will ich nur die LogicView ansprechen, die dann die entsprechenden Sachen an die Main weitergibt. hier meine Main: ActionScript:
ActionScript:
...glaube habe jetzt mein Problem verstanden, weiß aber keine Lösung dafür. ich versuch es mal zu erklären: in meiner ViewStart erstelle ich in anderen Klassen Sprites und Buttons die dann jeweils mit addChild() wieder an die ViewStart gegeben werden und somit angezeigt werden. einer der Buttons ist auch der "Info-Button", mit dem ich in die ViewInfo gelangen sollte. wenn ich jetzt in der Klasse, in der sich der Info-Button befindet, die function changeStartToView aufrufe, gibt es den darin enthaltenen Code durch addChild() an die Klasse weiter in der der Info-Button drin ist. hätte jetzt gerne, dass ich aus den jeweiligen Klassen in denen meinen Buttons sind, der LogicView sagen kann, welche Views an die Main weitergegeben werden bzw. entfernt werden. (glaube auch, das die Lösung mit dem Aufruf des Konstruktors der LogicView in der Main und der darin enthaltene Aufruf der Methode showViewStart() nicht optimal ist; weiß aber hier nicht mehr weiter.) das war jetzt zwar etwas ausführlich, aber hoffe ich hab dadurch jetzt mein problem genau beschrieben und mir kann jemand weiterhelfen Geändert von Martin Kraft (09-01-2012 um 11:07 Uhr) Grund: Code formatiert |
| | |
| | #7 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.164
|
__________________ 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! |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Jan 2012
Beiträge: 8
|
ViewStart: ActionScript:
ActionScript:
ActionScript:
Geändert von Martin Kraft (09-01-2012 um 11:04 Uhr) |
| | |
| | #9 (permalink) | |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.164
|
Dir ist hoffentlich bewusst, dass jedes mal wenn Du new LogicView() ausführst, eine neue unabhängige Instanz erzeugt wird?! m_LogicView in Main zeigt also auf ein ganz anderes Objekt als l_button in ControllerButtonInfo. Und das ist auch der Grund für diese Endlosscheife: Soweit ich das überblicke (was bei der Struktur ewcht nicht leicht ist), erzeugst Du in LogicView über zig andere Instanzen eine Instanz von ControllerButtonInfo, die wiederum eine Instanz von LogicView erzeugt, womit das ganze wieder von vorne anfängt... Diese Konstruktionen find ich überigens (unnötig) verwirrend: Zitat:
P.S.: Bitte markier Deinen Code hier im Forum als [AS] oder [PHP] (so wie ich es jetzt für Dich getan habe) und nicht als [QUOTE], dann kann man ihn deutlich besser lesen!
__________________ 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 (09-01-2012 um 11:29 Uhr) | |
| | |
| | #10 (permalink) | |
| Neuer User Registriert seit: Jan 2012
Beiträge: 8
| Zitat:
aber wie komme ich aus dieser Endlosschleife raus? mein spiel ist ja nicht das erste bei dem man mit einem ButtonClick auf eine neue Ansicht kommt. wie wird das denn "normal" gelöst? meine Idee von der unnötig verwirrenden Konstruktion war: ich hab eine klasse DataElement in der all meine Sprites, die ich während des spiels habe, angelegt werden und eine Klasse DataButton in der alle meine Buttons sind. in der jeweilig View rufe ich dann diejenigen die ich gerade brauche durch ActionScript:
habe die elemente bis jetzt ja nur zu Test zwecken in der ViewStart bzw. ViewInfo. würde also noch öfter element1 in die Anzeigeliste legen, da noch mehr Sprites aus der DataElemente angezeigt werden sollen. (bin ziemlicher Anfänger und weiß grad auch nicht ob meine Idee/ der Sinn von dieser Konstruktion gut oder schlecht ist.) Aber mein Problem ist ja jetzt diese blöde Endlosschleife...und hab echt keine Ahnung wie ich da rauskomme. wäre super wenn Du dazu noch nen Tipp hättest. gerne auch allgemein erkärt wie man sowas löst und nicht auf meinen Code bezogen. Wie gesagt, es ist ja bestimmt nicht das erste mal dass man durch einen Click auf eine andere Ansicht wechselt... | |
| | |
| | #11 (permalink) | ||
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.164
| Indem Du nicht neue Instanzen erzeugst, wenn Du auf bestehende zugreifen willst. Und indem Du darauf verzichtest Klassen zu instanziieren, die dann automatisch (direkt oder indirekt) wieder die Klasse instanziieren, von der sie selbst instanziiert wurden. Zitat:
Der Controller sollte also (wie der Name schon sagt) die Views kontrollieren und nicht umgekehrt! Zitat:
Generell finde ich Deine Struktur so verschachtelt, dass man bereits jetzt kaum durchblickt. Wenn man ständig in neue Klassen springen muss, um zu verstehen, was da eigentlich vor sich geht, ist das ein Zeichen dafür, dass es entschieden zu viele Abhängigkeiten gibt. In der OOP sollte sich schließlich jede Klasse erstmal möglichst autark um ihren ****** kümmern und möglichst wenig von anderen abhängig sein.
__________________ 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 (09-01-2012 um 12:50 Uhr) | ||
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Flash CS4] Bühne leeren | snatch-ic | Flash Einsteiger | 3 | 19-06-2009 18:01 |
| Bühne komplett leeren? | TheFreeman | ActionScript 2 | 2 | 21-08-2008 20:35 |
| Bühne leeren? | spott74 | ActionScript 1 | 2 | 25-02-2008 14:58 |
| komplette Bühne zoomen | dervish | ActionScript 1 | 3 | 22-11-2005 10:58 |
| komplette hp | MiM | Softwarearchitektur und Entwurfsmuster | 1 | 16-07-2003 21:49 |