flex事件机制1:事件源
事件源产生并分派(dispatch)事件。在flex中,通过继承flash.events.EventDispatcher类,就可以使用dispatchEvent()方法分发事件给事件监听者。
ActionScript3.0语言参考中关于dispatchEvent方法的说明如下:
public function dispatchEvent(event:Event):Boolean
将事件调度到事件流中。 事件目标是对其调用 dispatchEvent() 方法的 EventDispatcher 对象。
参数
event:Event — 调度到事件流中的 Event 对象。 如果正在重新调度事件,则会自动创建此事件的一个克隆。 在调度了事件后,其 target 属性将无法更改,因此您必须创建此事件的一个新副本以能够重新调度。
返回
Boolean — 如果成功调度了事件,则值为 true。 值 false 表示失败或对事件调用了 preventDefault()。
将事件调度到事件流中。 事件目标是对其调用 dispatchEvent() 方法的 EventDispatcher 对象。
参数
event:Event — 调度到事件流中的 Event 对象。 如果正在重新调度事件,则会自动创建此事件的一个克隆。 在调度了事件后,其 target 属性将无法更改,因此您必须创建此事件的一个新副本以能够重新调度。
返回
Boolean — 如果成功调度了事件,则值为 true。 值 false 表示失败或对事件调用了 preventDefault()。
继承了EventDispatcher只是实现了事件分发功能。默认只支持activate和deactivate事件。要支持其他事件,如click等,甚至自定义事件,还需要用Event 标签声明可以分派的事件。Event 标签用于定义组件发出的事件。
Event 标签的例子如下:
[Event(name="event_A",type="test.events.MyEvent")]
如果要在mxml中声明事件,需要使用Metadata标签:
<mx:Metadata>
[Event(name="event_A",type="test.events.MyEvent")]
</mx:Metadata>
[Event(name="event_A",type="test.events.MyEvent")]
</mx:Metadata>