我为此疯狂!我有一个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中的“关闭窗口”选项关闭窗口有任何想法。
感谢您的帮助
城野
答案 0 :(得分: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();
您可以在此次通话前放置此代码。