5

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

在我的 Spark WindowedApplication 中,我有:

this.addEventListener( Event.CLOSING, shutdownApp );

当然还有一个shutdownApp方法的实现(基本上是整理临时文件)。

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

NativeApplication.nativeApplication.exit();

但是,这不会触发 Event.CLOSING 方法,因此我的临时文件没有被清除。我不应该调用 nativeApplication.exit 吗?如果是这样,我应该叫什么?我宁愿不必在 NativeApplication.exit() 之前调用我的 shutdownApp 方法,因为这感觉不太优雅。

任何人都可以阐明这样做的正确方法吗?

谢谢,

菲尔

4

3 回答 3

7

我知道这个问题已被回答和接受,但我想我会分享,我使用。

stage.nativeWindow.close();
于 2011-12-01T11:42:53.143 回答
4

文档看起来有点模棱两可,我会有和你一样的解释。您是否尝试过 WindowedApplication 上的关闭或退出方法?

像这样,使用FlexGlobals和 topLevelApplication:

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

或者

(FlexGlobals.topLevelApplication as WindowedApplication).exit();
于 2011-02-17T17:09:26.677 回答
1

只是在这里给出一个答案,因为我搜索了一个相关的问题并且无法找到某事。

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

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

      this.addEventListener(Event.Closing, windowClosed);

不起作用:没有发送关闭事件。唯一的方法是直接在 MXML 文件开头的 s:Window 元素中注册一个事件处理程序。我只是输入了关闭属性:

      closing="window1_closingHandler(event)"

然后在我调用的 window1_closureHandler-function 中调度了该事件

      NativeApplication.nativeApplication.exit();

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

于 2013-11-05T02:47:41.063 回答