| |||||||
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) |
| Developer Registriert seit: Sep 2001 Ort: Unterhaching/München
Beiträge: 515
|
Hallo. Man steht sehr häufig vor der Aufgabe, Abläufe im System zu timen. Ich wüßte gerne, wie ihr das meistens angeht. Nehmen wir als Beispiel irgendeine View, die aus mehreren kleinen Animationen besteht, die sich beim Öffnen der View ausklappen und beim Schließen wieder zuklappen. Sowas kann sich ja beliebig tief verschachteln. Und egal in welchem Zustand sich die View befindet, beim Schließen fangen alle "offenen" Teile an, sich zusammen zu falten. Baut ihr ein kompliziertes EventSystem auf und wenn ja, wie in etwa sieht das aus, damit Reihenfolgen auch eingehalten werden? |
| | |
| | #2 (permalink) |
| Developer Registriert seit: Sep 2001 Ort: Unterhaching/München
Beiträge: 515
|
Ich stell es mir so vor, dass die äußerste Klasse eine Methode "close" hat und diesen Befehl all ihren Kindern runterreicht, die wiederum ihren Kindern usw. Wenn das ganz unten angekommen ist, blendet das Kind aus und dispatched ein Closed Event an seinen Parent. Der wiederum muss aber mitzählen, wieviele "close"-Events ankommen müssen, bis er sich selber schließen darf. Das könnte man einmal so machen, dass man ein Array in der Hauptview erstellt, welches die Kinder mit Einsen(1) füllen, wenn sie geöffnet sind und mit Nullen(0), wenn Sie geschlossen sind. Ein Parent überprüft dann bei jedem eingehenden Close Event, wieviel Kinder er hat und wieviele Stellen im Array schon auf 0 stehen, um sich bei gleicher Anzahl selber zu schließen. Oder man baut sich eine WrapperKlasse. Zusätzlich zum Hinzufügen der Kinder wrappt man ein jedes Kind in diesen Wrapper, der sich neben dem Parent ebenfalls als Listener fürs "Close Event" des Kindes anmeldet. Diese Wrapper mit den Referenzen auf die hinzugefügten Kinder packt man wieder in den Parent (in einem Array Beispielsweise) und hat jetzt die Möglichkeit, trotz den bereits geschlossenen Kindes, eine Verzögerung einzubauen. Denn jetzt switched das Kind nicht direkt eine Array Stelle von 1 auf 0 sondern der Wrapper ist dafür zuständig das zu machen. Dieser kann jetzt allerdings durch einen Timer Verzögerungen einbauen. Geändert von malthoff (26-07-2008 um 01:44 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |