事件流按运行流程分为3步:
1、捕获阶段:捕获事件 capturing,从根节点开始顺序而下,检测每个节点是否注册了监听器。同时,Flex 将事件对象的currentTarget 值改为当前正在检测的对象。如果注册了监听器,则调用监听函数。
2、目标阶段:检测目标的监听器 targeting:触发在目标对象本身注册的监听程序
3、冒泡阶段:事件冒泡 bubbling:从目标节点到根节点,检测每个节点是否注册了监听器,如果有,则调用监听函数。
每个事件对象都有以下属性:
target:事件的派发者
currentTarget:当前正在检测的的对象,帮助跟踪事件传播的过程。
当事件发生时,FLEX通过事件的分发器EventDispatcher进行事件分发,分发的顺序是:从上往下到达目标,然后从下往上,从目标开始返回。
在事件的流经过程中,不是目标的对象如果注册了事件,也有了相应的事件响应函数,使得不是目标的对象也响应了事件的处理
addEventListener在只有如上两个参数的情况下是关闭捕获阶段的,也就是说事件流是从目标阶段开始的,然后是冒泡阶段
自定义事件
1.创建自定义事件名称的Event
dispatchEvent(new Event(“myEvnet”,true,false));
2.创建自定义事件类
Public class MyEvent extends Event{
….
}