0

私はこれに夢中になっています!Air(2.6)アプリがあり、実行するとポップアップのNativeWindowが開き、アラートを処理します。

public var _alertWindow:NativeWindow;

_alertWindow = new NativeWindow(windowOptions);
_alertWindow.stage.scaleMode = StageScaleMode.NO_SCALE;
_alertWindow.stage.align = StageAlign.TOP_LEFT;
_alertWindow.bounds = new Rectangle(0, 0, content.width, content.height);

_alertWindow.title = "";
_alertWindow.alwaysInFront = true;

_alertWindow.x = Screen.mainScreen.bounds.width - _containerWidth;
_alertWindow.y = Screen.mainScreen.bounds.height - _containerHeight;
_alertWindow.stage.addChild(_contentContainer); 

これはすべてうまく機能します-私が呼び出す閉じるボタンを介してアプリを閉じるとき:

    AppName._alert._alertWindow.close();
    NativeApplication.nativeApplication.exit();

すべてのプラットフォームでこれに問題はありませんでした。ただし、Windows7では、タスクバーを右クリックして[ウィンドウを閉じる]を選択すると、メインアプリのみが閉じ、子のNativeWindowは閉じません。(これにより、アプリはバックグラウンドで実行され続けます。したがって、ユーザーが再度アクセスしようとしても実行されません)Event.CLOSINGなどのイベントリスナーやその他のさまざまなメソッドを追加しようとしましたが、失敗しました。誰かがwindows7の「ウィンドウを閉じる」オプションからウィンドウを閉じる方法について何かアイデアがあれば。

ご協力いただきありがとうございます

城野

4

1 に答える 1

0

これに似たものを使用して、開いているすべてのネイティブウィンドウを閉じることができます。

 private function closeMenus() : void
 {
    var nativeWindows:Array = NativeApplication.nativeApplication.openedWindows;

    for ( var i:int = 0; i< nativeWindows.length; i++) 
    {
        if(!(nativeWindows[i] as NativeWindow).closed)
        {
            (nativeWindows[i] as NativeWindow).close();
        }
    }
 }

exitを呼び出すハンドラーがどこかにあると仮定します。

NativeApplication.nativeApplication.exit();

この呼び出しの前にこのコードを配置できます。

于 2012-03-15T08:56:15.710 に答える