window.runtime 属性window.runtime.flash.events.EventDispatcher
继承EventDispatcher Inheritance Object
运行时版本:  1.0

EventDispatcher 类是可调度事件的所有运行时类的基类。

可以通过调用调度该事件的对象的 addEventListener() 方法来注册函数以处理运行时事件。



属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
公共方法
 方法定义方
  
聚合 EventDispatcher 类的实例。
EventDispatcher
  
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
  
将事件调度到事件流中。
EventDispatcher
  
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
hasOwnProperty(name:String):Boolean
指示对象是否已经定义了指定的属性。
Object
 Inherited
isPrototypeOf(theClass:Object):Boolean
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
propertyIsEnumerable(name:String):Boolean
指示指定的属性是否存在、是否可枚举。
Object
  
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
 Inherited
setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
设置循环操作动态属性的可用性。
Object
 Inherited
toString():String
返回指定对象的字符串表示形式。
Object
 Inherited
valueOf():Object
返回指定对象的原始值。
Object
  
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件 摘要 定义方
  [广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
  [广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
构造函数详细信息
EventDispatcher()构造函数
function EventDispatcher(target:IEventDispatcher = null)
运行时版本:  1.0

聚合 EventDispatcher 类的实例。

EventDispatcher 类通常在 SWF 内容使用的 ActionScript 3.0 代码中用作基类,这意味着 JavaScript 开发人员都无需使用此构造函数。

参数
target:IEventDispatcher (default = null) — 调度到 EventDispatcher 对象的事件的目标对象。目标对象仅在 SWF 内容的显示对象中有效,它们使用 ActionScript 3.0 显示列表体系结构。
方法详细信息
addEventListener()方法
function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
运行时版本:  1.0

使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。

AIR 运行时中的 JavaScript 代码使用此方法注册 AIR API 定义的事件的事件侦听器。对于其它 JavaScript 事件(如 DOM body 对象的 onload 事件),您可以像对浏览器中运行的内容一样使用标准事件处理技术。

成功注册一个事件侦听器后,无法通过额外调用 addEventListener() 来更改其优先级。 要更改侦听器的优先级,必须首先调用 removeListener()。然后,可以使用新的优先级再次注册该侦听器。

请记住,注册该侦听器后,如果继续调用具有不同 typeuseCapture 值的 addEventListener(),则会创建单独的侦听器注册。

如果不再需要某个事件侦听器,可调用 removeEventListener() 删除它,否则会产生内存问题。由于垃圾回收器不会删除仍包含引用的对象,因此不会从内存中自动删除使用已注册事件侦听器的对象。

复制 EventDispatcher 实例时并不复制其中附加的事件侦听器。(如果新近创建的节点需要一个事件侦听器,必须在创建该节点后附加该侦听器。) 但是,如果移动 EventDispatcher 实例,则其中附加的事件侦听器也会随之移动。

参数

type:String — 事件的类型。
 
listener:Function — 处理事件的侦听器函数。 此函数必须接受 Event 对象作为其唯一的参数并且不能返回任何结果

函数可以有任何名称。

 
useCapture:Boolean (default = false)此参数适用于 SWF 内容所使用的 ActionScript 3.0 显示列表体系结构中的显示对象。
 
priority:int (default = 0) — 事件侦听器的优先级。 优先级由一个带符号的 32 位整数指定。 数字越大,优先级越高。优先级为 n 的所有侦听器会在优先级为 n -1 的侦听器之前得到处理。如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。默认优先级为 0。
 
useWeakReference:Boolean (default = false) — 确定对侦听器的引用是强引用,还是弱引用。 强引用(默认值)可防止您的侦听器被当作垃圾回收。 弱引用则没有此作用。

类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将 useWeakReference 设置为 true 而不会使它们受垃圾回收的影响。如果对作为嵌套内部函数的侦听器将 useWeakReference 设置为 true,则该函数将作为垃圾回收并且不再是永久函数。如果创建对该内部函数的引用(将该函数保存到另一个变量中),则该函数将不作为垃圾回收并仍将保持永久。


引发
ArgumentError — 指定的 listener 不是一个函数。
dispatchEvent()方法 
function dispatchEvent(event:Event):Boolean
运行时版本:  1.0

将事件调度到事件流中。事件目标是对其调用 dispatchEvent() 方法的 EventDispatcher 对象。

参数

event:Event — 调度到事件流中的 Event 对象。如果正在重新调度事件,则会自动创建此事件的一个克隆。 在调度了事件后,其 target 属性将无法更改,因此您必须创建此事件的一个新副本以能够重新调度。

返回
Boolean — 如果成功调度了事件,则值为 true。值 false 表示失败或对事件调用了 preventDefault()

引发
Error — 已达到事件调度递归限制。
hasEventListener()方法 
function hasEventListener(type:String):Boolean
运行时版本:  1.0

检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。这样,您就可以确定 EventDispatcher 对象在事件流层次结构中的哪个位置改变了对事件类型的处理。要确定特定事件类型是否确实触发了事件侦听器,请使用 willTrigger()

hasEventListener()willTrigger() 的区别是:hasEventListener() 只检查它所属的对象,而 willTrigger() 检查整个事件流以查找由 type 参数指定的事件。事件流适用于 SWF 内容中使用的 ActionScript 3.0 显示列表。

当从 LoaderInfo 对象调用 hasEventListener() 时,只考虑调用方可以访问的侦听器。

参数

type:String — 事件的类型。

返回
Boolean — 如果指定类型的侦听器已注册,则值为 true;否则,值为 false

另请参见

removeEventListener()方法 
function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
运行时版本:  1.0

从 EventDispatcher 对象中删除侦听器。如果没有向 EventDispatcher 对象注册任何匹配的侦听器,则对此方法的调用没有任何效果。

参数

type:String — 事件的类型。
 
listener:Function — 要删除的侦听器对象。
 
useCapture:Boolean (default = false)此参数适用于 SWF 内容所使用的 ActionScript 3.0 显示列表体系结构中的显示对象。

willTrigger()方法 
function willTrigger(type:String):Boolean
运行时版本:  1.0

检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。将指定类型的事件调度给此 EventDispatcher 对象或其任一后代时,如果在事件流的任何阶段触发了事件侦听器,则此方法返回 true

hasEventListener()willTrigger() 方法的区别是:hasEventListener() 只检查它所属的对象,而 willTrigger() 方法检查整个事件流以查找由 type 参数指定的事件。事件流适用于 SWF 内容中使用的 ActionScript 3.0 显示列表。

当从 LoaderInfo 对象调用 willTrigger() 时,只考虑调用方可以访问的侦听器。

参数

type:String — 事件的类型。

返回
Boolean — 如果将会触发指定类型的侦听器,则值为 true;否则,值为 false
事件详细信息
activate 事件
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.ACTIVATE
运行时版本:  1.0

[广播事件] AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。此事件为广播事件,这意味着将由所有具有注册了此事件的侦听器的 EventDispatcher 对象调度此事件。

ACTIVATE 常量定义 activate 事件对象的 type 属性的值。

注意:此事件既不具有“捕获阶段”也不具有“冒泡阶段”,这意味着必须直接将事件侦听器添加到任何潜在的目标,而无论目标是否位于显示列表中。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target具有为 activate 事件注册的侦听器的任何 DisplayObject 实例。
deactivate 事件  
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.DEACTIVATE
运行时版本:  1.0

[广播事件] AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。此事件为广播事件,这意味着将由所有具有注册了此事件的侦听器的 EventDispatcher 对象调度此事件。

Event.DEACTIVATE 常量定义 deactivate 事件对象的 type 属性值。

注意:此事件既不具有“捕获阶段”也不具有“冒泡阶段”,这意味着必须直接将事件侦听器添加到任何潜在的目标,而无论目标是否位于显示列表中。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target具有为 deactivate 事件注册的侦听器的任何 DisplayObject 实例。