AIR中关闭所有打开的窗口

Categories: Flex; Tagged with: ; @ October 21st, 2008 10:18

在AIR工程中, 如果新建某个窗口, 当关闭主窗口时, 新窗口并不随着主窗口的关闭而关闭, 但是在很多情况下. 我们需要在主窗口关闭时, 所有的子窗口都一起关闭.

为了达到这个效果, 我们监听主窗口的Event.CLOSING事件, 当用户点击主窗口关闭按钮或是单击任务栏右键时, 我们采取一定措施, 关闭所有窗口.

在AIR中,openedWindows是一个包括了所有当前打开的窗口滴数组. 因此遍历该数组,将所有元素都关闭便可达到目的.

故Event.CLOSING的监听函数可以这么写:

/**主窗口点击关闭时,关闭所有打开的窗口*/
private function onMainWindowClose(e:Event):void {
	var wds:Array = NativeApplication.nativeApplication.openedWindows;
	for (var i:int = 0; i

运行代码,点击主窗口关闭按钮或是任务栏右键关闭时,所有窗口都将关闭.

另外,如果仅需要关闭主窗口之外的所有窗口, 可以在for循环结束之后增加e.preventDefault(),同时for循环修改为:

for (var i:int = 1; i

以阻止主窗口关闭,达到关闭其他窗口,保留主窗口的目的.

<->



// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.