2010-12-29 10 views
0

ich spiele um mit den Navigator Klasse und benutzerdefinierte Ansichten in Luft für Android und das Flex SDK HEROTerminate Air Navigator Ansichten

mein Problem ist, dass es wie es scheint keine Möglichkeit, wie eine Ansicht zu beenden. ich starte eine Ansicht mit navigator.pushview (myView).

dann, wenn ich die Zurück-Taste verwende, möchte ich diese Ansicht SCHLIESSEN und zum Hauptmenü zurückkehren. deshalb lausche ich für das Ereignis onKeyDown Keyboard.BACK, das event.preventDefault() verwendet, um zu verhindern, dass die Anwendung die Standardaktion "Zurückgehen" ausführt, und navigator.pushview (myOtherView), um zum Hauptmenü zurückzukehren.

ABER das Problem ist, dass die myView Ansicht immer noch im Hintergrund läuft.

jetzt suche ich nach einem Weg, um dieses myView und alles zu beenden, die in innerhalb laufen (atm, wenn ich die Cam zugreifen, ist der Nocken immer noch aktiv, auch wenn der Blick nicht mehr aktiv ist)

Kann jemand helfen?

Antwort

1

Angenommen, der Navigator-Datenprovider funktioniert wie ArrayCollection, können Sie beispielsweise navigator.removeItemAt(navigator.getItemIndex(myView)); Und dann die Kamera herunterfahren und schließlich alle Handles auf das myView entfernen und auf Null setzen, damit der GC es aufnimmt.

Vorsicht, die Syntax kann unterschiedlich sein, wenn Sie das Element entfernen möchten. Ich habe nie den Navigator verwendet.

+0

ja, das habe ich ausprobiert. Der Navigator hat eine eigene Syntax dafür und es ist möglich, den Navigator zu löschen (stellen Sie sich vor, der Navigator arbeitet als Stapel, der alle Ansichten speichert, so dass Sie immer zurückgehen können). aber das Löschen (das ist dasselbe wie removeItemAt) bewirkt nur, dass der Stapel leer ist, aber die Ansichten sind immer noch vorhanden und aktiv. – masi

+0

Der Rest meiner Erklärung nach removeItemAt, sollte anzeigen, dass, nachdem Sie es aus dem Navigator entfernen, nehmen Sie die entfernte Instanz (removeItemAt wird es Ihnen zurückgeben) und rufen Sie Ihre eigenen Methoden zum Herunterfahren der Ansicht und Freigabe aller EvenListener gehalten durch den Blick/irgendwelche eventlisteners, die für die Ansicht hören. Dann kann GC es aufheben. Sie könnten den Prozess beenden. indem du einen Gegenstand machst = null ... – NielsBjerg