2012-03-14 2 views
0

私はこれ以上狂ってしまいました!私は実行時に警告を処理するためにNativeWindowのポップアップを開くAir(2.6)アプリケーションを持っています。メインアプリが閉鎖されたときに子のnativeWindowsを閉じます(OS経由)

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の 'クローズウィンドウ'オプションからウィンドウを閉じる方法に関するアイデアがある場合。あなたの助けのための

おかげ

城野

答えて

0

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

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(); 
     } 
    } 
} 

は、あなたが終了を呼び出すハンドラのどこかを持っていると仮定:

NativeApplication.nativeApplication.exit(); 

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

+0

はい! .openWindowsありがとう!真剣にこれを知っていた! – Jono

関連する問題