侦听窗口事件

Adobe AIR 1.0 和更高版本

若要侦听窗口调度的事件,请向窗口实例注册侦听器。例如,若要侦听 closing 事件,请按如下方式向窗口实例注册侦听器:

window.nativeWindow.addEventListener(air.Event.CLOSING, onClosingEvent);

在调度事件时, target 属性引用发送该事件的窗口。

大多数窗口事件都有两条相关消息。第一条消息发出即将发生窗口更改(可以取消)的信号通知,第二条消息发出更改已发生的信号通知。例如,在用户单击窗口的关闭按钮后,将调度 closing 事件消息。如果侦听器未取消该事件,则窗口将关闭并且 close 事件将调度到所有侦听器。

通常,仅在已使用系统镶边触发事件时才调度 closing 等警告事件。例如,调用 window close() 方法不会自动调度 closing 事件,而只调度 close 事件。但是,您可以构造 closing 事件对象并使用 window dispatchEvent() 方法来调度它。

调度 Event 对象的窗口事件包括:

事件

说明

activate

在窗口收到焦点时调度。

deactivate

在窗口失去焦点时调度

closing

在窗口即将关闭时调度。仅当在按下系统镶边关闭按钮时或者在 Mac OS X 中调用 Quit 命令时,此事件才自动发生。

close

在窗口关闭时调度。

调度 NativeWindowBoundsEvent 对象的窗口事件包括:

事件

说明

moving

在窗口左上角由于移动窗口、调整窗口大小或更改窗口显示状态而更改位置的前一刻调度。

move

在左上角更改位置之后调度。

resizing

在窗口宽度或高度由于调整大小或显示状态更改而发生更改的前一刻调度。

resize

在窗口更改大小之后调度。

对于 NativeWindowBoundsEvent 事件,可以使用 beforeBounds afterBounds 属性确定即将进行更改或完成更改之前和之后的窗口范围。

调度 NativeWindowDisplayStateEvent 对象的窗口事件包括:

事件

说明

displayStateChanging

在窗口显示状态更改的前一刻调度。

displayStateChange

在窗口显示状态更改之后调度。

对于 NativeWindowDisplayStateEvent 事件,可以使用 beforeDisplayState afterDisplayState 属性确定即将进行更改或完成更改之前和之后的窗口显示状态。

在某些 Linux 窗口管理器中,将具有最大化大小设置的窗口最大化时并不调度显示状态更改事件。(窗口设置为最大化显示状态,但并不调整其大小。)