Apache flex air 2.0在应用程序退出时调用preventDefault
单击Apache flex air 2.0在应用程序退出时调用preventDefault,apache-flex,air,Apache Flex,Air,单击X按钮试图阻止应用程序关闭时,应用程序仍将关闭,但任务管理器中的AIR进程正在运行。代码怎么了 申请完成: NativeApplication.nativeApplication.addEventListener(Event.EXITING, onExiting); 结束代码: private function onExiting(e:Event):void { e.preventDefault(); } 尝试事件。关闭。这就是我用来取消结账的方法 事件。退出发生在删除窗口后,应仅用于清
X
按钮试图阻止应用程序关闭时,应用程序仍将关闭,但任务管理器中的AIR进程正在运行。代码怎么了
申请完成:
NativeApplication.nativeApplication.addEventListener(Event.EXITING, onExiting);
结束代码:
private function onExiting(e:Event):void
{
e.preventDefault();
}
尝试
事件。关闭。这就是我用来取消结账的方法
事件。退出
发生在删除窗口后,应仅用于清理,而不是阻止应用程序关闭
从:
在Windows上,只有在
退出事件是在关闭后发生的
最后一个窗口(当autoExit=true时)
“不可关闭”应用程序示例:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
initialize="init()">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
private function init():void{
this.addEventListener(Event.CLOSING, function(e:Event):void{
e.preventDefault();
Alert.show('Unclosable!');
});
}
]]>
</fx:Script>
</s:WindowedApplication>
祝你好运,
Alin警报消息处理发生在不同于应用程序线程的线程中,因此应用程序不等待警报消息框。诀窍是使用初始化值为false的全局变量。在关闭的事件处理程序上,若值未更改为true,则取消关闭事件。这样可以显示警报消息。如果用户按下Yes,则将变量设置为true,然后再次设置fire exit功能
private var boolExit:Boolean=false;
private function alertClickHandler(event:CloseEvent):void{
if(event.detail==Alert.YES){
boolExit=true;
NativeApplication.nativeApplication.exit();
}
}
private function AppExit(e:Event):void{
if(!boolExit)
e.preventDefault();
Alert.show("Do you want to exit application?",
"Exit Confirmation",
Alert.YES|Alert.NO,null,
alertClickHandler
);
}
public function init():void
{
. . .
this.addEventListener(Event.CLOSING,AppExit);
. . .
}
呃,即使我换成你的解决方案,它仍然会关闭。在Windows7上。它也在Windows7上工作。我在应用程序中使用了完全相同的方法,当用户想要从x按钮关闭窗口时,请求保存。您使用的是Event.CLOSING
,而不是Event.CLOSE
?我使用CLOSING,也许您可以发布一个示例代码?谢谢。谢谢你,至少这样行。我看到有人在64位上有问题?“函数”使实现变通方法变得容易。