Flex 事件传播过程简介

当触发事件时,Flex查找事件监听器将经历三个阶段:捕获阶段,定位阶段,冒泡阶段。以下是我对这三个阶段的理解,举例说明:
假设stage上一个btn,现在点击btn触发了一个事件event,之后Flex事件监听器:
1、首先捕获到event的是stage,将stage和event.target进行对比,修改event.currentTarget为stage,发现不相符,继续向下传递给mc,同理,再从mc传递给btn,此时event.target与之相符,currentTarget与target相同。(捕获阶段)
2、执行btn事件侦听函数。(定位阶段)
3、2完成后开始冒泡阶段,从btn返回mc,若mc有对应事件侦听函数,则执行,event.currentTarget同时改变为mc,同理,在交给stage同样的执行。

当然在很多时候,我们并不希望进行冒泡阶段,只希望执行btn的侦听函数,但是同时mc,stage刚好有对应的侦听函数,那么就会引起问题。处理方法为:在btn侦听函数结尾加入 event.stopPropagation(); 即可。

转自:http://minnychang.blogbus.com/logs/37078686.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值