您的位置:首页 > 其它

as3中的target和currentTarget区别

2013-05-17 17:06 246 查看
http://bbs.9ria.com/thread-88461-1-1.html?/html/about.html

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

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

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

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

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

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

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

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


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

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

比如一个影片剪辑包裹一个按钮 在按钮上点击 由此至终 target都是指向按钮,

而如果除了侦听按钮的 MouseEvent.CLICK事件外 还令上层影片剪辑同时侦听 MouseEvent.CLICK事件的话,因为沿途有侦听 在冒泡阶段 事件流就会针对这个侦听作出响应

亦即是说 只有侦听的对象才会令到 currentTarget对象产生变化

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

-------------------------------------------------------------------------------

就是说,在一个影片剪辑中存放了一个按钮,单击按钮,target获取的对象时按钮,currenttarget获取的是影片剪辑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: