Event的target和currentTarget的区别

target 是指向最底层的可接受鼠标事件的对象  如果设置了  mouseChildren = false ,则到达此层就是最底层可接受鼠标事件的对象了。

currentTarget是指事件流的当前阶段侦听对象。



  as3的事件机制优于as2的好处是

as2如果一个影片剪辑 包裹 一个按钮,如果为影片剪辑添加了任何事件处理,那么内部的按钮事件就会失去效果,意思即是说 as2的事件机制是即时拦截,一拦截到就执行,不会再向内层对象传递的了。

在as2中比如做一个小黑板的拖动  和 右上角一个关闭按钮 就会很麻烦 ,要分成两个不内嵌的影片剪辑或按钮。


而as3它的事件机制是,按照嵌套关系,在鼠标点击处一直向下遍历,这个过程是事件流机制中的 捕获阶段;

当找到最后一层可以接受鼠标事件的对象时  这叫 目标阶段;

然后会启动一个向上沿路回流的阶段 这叫 冒泡阶段;


targe在整个事件流机制过程中 都是不变的  指向 目标阶段中所存在的最底一层可以接受鼠标的事件对象。

而currentTarget则是随着事件流不同的阶段 指向流中当前的事件侦听对象。


比如一个影片剪辑包裹一个按钮   在按钮上点击    由此至终 target都是指向按钮,而如果除了侦听按钮的 MouseEvent.CLICK事件外  还令上层影片剪辑同时侦听 MouseEvent.CLICK事件的话,因为沿途有侦听   在冒泡阶段  事件流就会针对这个侦听作出响应。

亦即是说 只有侦听的对象才会令到 currentTarget对象产生变化。
这种事件机制的好处是保证了整个影片所有对象都平等地分享同一个鼠标或键盘等交互事件的消费,不会被提前拦截而令后续对象没法侦听到。

 

                                        


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值