5

AIR アプリケーションをプログラムで閉じる正しい方法を知りたいです。

私のSpark WindowedApplicationには次のものがあります:

this.addEventListener( Event.CLOSING, shutdownApp );

もちろん、shutdownApp メソッドの実装 (基本的に一時ファイルを整理します)。

これは、ウィンドウの右上の閉じるボタンでうまく機能します。ただし、アプリケーションをシャットダウンする必要がある機能もあります。私が呼び出したコード内:

NativeApplication.nativeApplication.exit();

ただし、これは Event.CLOSING メソッドをトリガーしないため、一時ファイルはクリアされません。nativeApplication.exit を呼び出すべきではありませんか? その場合、代わりに何を呼び出す必要がありますか? これはあまりエレガントに感じられないため、NativeApplication.exit() の前に shutdownApp メソッドを呼び出す必要はありません。

誰でもこれを行う正しい方法に光を当てることができますか?

ありがとう、

フィル

4

3 に答える 3

7

この質問が回答され、受け入れられたことは知っていますが、共有したいと思います。

stage.nativeWindow.close();
于 2011-12-01T11:42:53.143 に答える
4

ドキュメントはこれについて少し曖昧に見えます、そして私はあなたがしたのと同じ解釈をするでしょう。WindowedApplicationでcloseメソッドまたはexitメソッドを試しましたか?

FlexGlobalsとtopLevelApplicationを使用したこのようなもの:

(FlexGlobals.topLevelApplication as WindowedApplication).close();

また

(FlexGlobals.topLevelApplication as WindowedApplication).exit();
于 2011-02-17T17:09:26.677 に答える
1

関連する質問を検索したところ、sth が見つからなかったので、ここで回答してください。

ドキュメント ウィンドウ (spark.components.Window) のネイティブの閉じるボタンが押されたときに同様のことを行い、AIR アプリケーションを閉じたいと考えましたメニュー (アプリケーションの起動時に、スプラッシュ スクリーンを表示するためにも使用されます。閉じている場合、ネイティブ メニューが表示されないかアクセスできなくなるため、開いたままにする必要があるため、visible プロパティは false に設定されます)。

私の主な問題は、ウィンドウを閉じるイベントでした。のようにActionScriptで登録する

      this.addEventListener(Event.Closing, windowClosed);

動作しません: 終了イベントが送出されませんでした。唯一の方法は、MXML ファイルの先頭にある s:Window 要素にイベント ハンドラーを直接登録することでした。終了属性を挿入するだけです:

      closing="window1_closingHandler(event)"

その後、イベントがディスパッチされ、window1_closingHandler-function で呼び出しました

      NativeApplication.nativeApplication.exit();

それは私にとってはうまくいき、アプリケーション全体をシャットダウンします。

于 2013-11-05T02:47:41.063 に答える