Apache flex 以编程方式关闭AIR应用程序

Apache flex 以编程方式关闭AIR应用程序,apache-flex,air,shutdown,flex-spark,Apache Flex,Air,Shutdown,Flex Spark,我想知道以编程方式关闭AIR应用程序的正确方法 在我的Spark Window应用程序中,我有: this.addEventListener( Event.CLOSING, shutdownApp ); 当然还有shutdownApp方法的实现(基本上就是整理临时文件) 这适用于窗口右上角的“关闭”按钮。但是,我也有需要关闭应用程序的功能。在我调用的代码中: NativeApplication.nativeApplication.exit(); 但是,这不会触发Event.CLOSING方法

我想知道以编程方式关闭AIR应用程序的正确方法

在我的Spark Window应用程序中,我有:

this.addEventListener( Event.CLOSING, shutdownApp );
当然还有shutdownApp方法的实现(基本上就是整理临时文件)

这适用于窗口右上角的“关闭”按钮。但是,我也有需要关闭应用程序的功能。在我调用的代码中:

NativeApplication.nativeApplication.exit();
但是,这不会触发Event.CLOSING方法,因此不会清除我的临时文件。我不应该呼叫nativeApplication.exit吗?如果是,我应该打什么电话?我不希望在NativeApplication.exit()之前调用我的shutdownApp方法,因为这感觉不太优雅

有人能解释一下正确的方法吗

谢谢


Phil

文档在这方面看起来有点模棱两可,我会有与您相同的解释。您是否在WindowedApplication上尝试了或退出方法

类似于此,使用和topLevelApplication:

(FlexGlobals.topLevelApplication as WindowedApplication).close();


我知道这个问题已经被回答和接受了,但我想和大家分享一下,我用了

stage.nativeWindow.close();

在这里给我一个答案,因为我搜索了一个相关的问题,但没有找到什么

当按下文档窗口(spark.components.window)的本机关闭按钮时,我想做一些类似的事情,关闭一个AIR应用程序,因为我认为spark WindowedApplication容器(应用程序主窗口)仍然处于活动状态,可以保存和管理本机菜单(在应用程序启动时,它还用于显示启动屏幕。它必须保持打开状态,因为如果关闭,本机菜单将不再显示或可访问,因此其visible属性仅设置为false)

我的主要问题是窗口关闭事件。使用ActionScript注册它,如

      this.addEventListener(Event.Closing, windowClosed);
不工作:未调度任何关闭事件。 唯一的方法是在MXML文件的开头直接在s:Window元素中注册事件处理程序。我只是加入了closing属性:

      closing="window1_closingHandler(event)"
该事件随后被调度,并在window1_closingHandler-function中调用

      NativeApplication.nativeApplication.exit();

这对我有效,并关闭整个应用程序。

当我第一次尝试此操作时,我得到一个TypeError:Error#1009:无法访问空对象引用的属性或方法。这是因为我导入了MX WindowedApplication而不是Spark。您的建议有效(我使用了close()谢谢!太棒了!这是唯一对我有效的解决方案,thanx!
      NativeApplication.nativeApplication.exit();