15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Aufrufen und Beenden von AIR-Anwendungen<br />

Anwendungen sollten keine BrowserInvokeEvent-Argumente verwenden, die auf lokale Ressourcen verweisen. So<br />

darf eine Anwendung keine File-Objekte erstellen, die auf einem Pfad basieren, der vom Browser übergeben wurde.<br />

Wird davon ausgegangen, das Remote-Pfadangaben vom Browser übergeben werden, muss die Anwendung<br />

sicherstellen, dass diese Pfadangaben nicht das Protokoll file:// anstelle eines Remote-Protokolls verwenden.<br />

Schließen der Anwendung<br />

Adobe AIR 1.0 und höher<br />

Eine Anwendung lässt sich am schnellsten mit einem Aufruf der exit()-Methode des NativeApplication-Objekts<br />

schließen. Dies funktioniert problemlos, wenn die Anwendung keine Daten speichern oder externe Ressourcen<br />

bereinigen muss. Durch den Aufruf von exit() werden alle Fenster geschlossen und die Anwendung wird beendet.<br />

Um jedoch den Fenstern und anderen Anwendungskomponenten die Möglichkeit zu geben, den Vorgang zu<br />

unterbrechen, z. B. um wichtige Daten zu speichern, lösen Sie vor dem Aufruf von exit() die entsprechenden<br />

Warnereignisse aus.<br />

Es ist sinnvoll, das Verlassen einer Anwendung so zu gestalten, dass die Ausführung immer gleich abläuft, unabhängig<br />

davon, wie der Beendigungsvorgang gestartet wurde. Der Benutzer (oder das Betriebssystem) kann die Beendigung<br />

der Anwendung auf folgende Arten einleiten:<br />

Durch Schließen des letzten Anwendungsfensters, wenn NativeApplication.nativeApplication.autoExit<br />

auf true gesetzt ist.<br />

Durch Auswahl des Befehls „Schließen“ im Betriebssystem, wenn der Benutzer zum Beispiel den Befehl für das<br />

Schließen der Anwendung aus dem Standardmenü wählt. (Dies geschieht nur auf Mac-Betriebssystemen.<br />

Windows und Linux stellen keinen Befehl für das Schließen der Anwendung über die Benutzeroberfläche des<br />

Systems zur Verfügung.)<br />

Durch Herunterfahren des Computers.<br />

Wenn der Befehl zum Schließen vom Betriebssystem über eines dieser Verfahren geleitet wird, löst NativeApplication<br />

ein exiting-Ereignis aus. Wird dieses exiting-Ereignis nicht von einem Listener unterbrochen, werden alle offenen<br />

Fenster geschlossen. Jedes Fenster löst ein closing- und dann ein close-Ereignis aus. Unterbricht eines der Fenster<br />

das closing-Ereignis, wird das Schließen der Anwendung gestoppt.<br />

Wenn die Reihenfolge, in der die Fenster geschlossen werden, für die Anwendung wichtig ist, richten Sie einen<br />

Listener für das Ereignis exiting von NativeApplication ein und schließen Sie die Fenster eigenhändig in der<br />

richtigen Reihenfolge. Dies ist zum Beispiel erforderlich, wenn ein Dokumentfenster mit Werkzeugpaletten<br />

vorhanden ist. Es hat vielleicht unangenehme oder noch schlimmere Folgen, wenn das System die Paletten schließt,<br />

der Benutzer jedoch beschlossen hat, den Beendigungsvorgang zu unterbrechen, um Daten zu speichern. Unter<br />

Windows tritt das Ereignis exiting nur auf, nachdem das letzte Fenster geschlossen wurde (wenn die Eigenschaft<br />

autoExit des NativeApplication-Objekts auf true gesetzt wurde).<br />

Stellen Sie bei allen Schließvorgängen, gleichgültig ob Sie über die Oberfläche des Betriebssystems, Menübefehle oder<br />

die Anwendungslogik ausgelöst wurden, sicher, dass der Vorgang gleich abläuft, indem Sie folgende Regeln beachten:<br />

1 Lösen Sie ein exiting-Ereignis immer durch das NativeApplication-Objekt aus, bevor Sie im Anwendungscode<br />

exit() aufrufen, und prüfen Sie, dass andere Komponenten der Anwendung das Ereignis nicht abbrechen.<br />

Letzte Aktualisierung 27.6.2012<br />

939

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!