本文主要是介绍Event的target和currentTarget的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
target 是指向最底层的可接受鼠标事件的对象 如果设置了 mouseChildren = false ,则到达此层就是最底层可接受鼠标事件的对象了。 currentTarget是指事件流的当前阶段侦听对象。 as3的事件机制优于as2的好处是 as2如果一个影片剪辑 包裹 一个按钮,如果为影片剪辑添加了任何事件处理,那么内部的按钮事件就会失去效果,意思即是说 as2的事件机制是即时拦截,一拦截到就执行,不会再向内层对象传递的了。 在as2中比如做一个小黑板的拖动 和 右上角一个关闭按钮 就会很麻烦 ,要分成两个不内嵌的影片剪辑或按钮。 而as3它的事件机制是,按照嵌套关系,在鼠标点击处一直向下遍历,这个过程是事件流机制中的 捕获阶段; 当找到最后一层可以接受鼠标事件的对象时 这叫 目标阶段; 然后会启动一个向上沿路回流的阶段 这叫 冒泡阶段; targe在整个事件流机制过程中 都是不变的 指向 目标阶段中所存在的最底一层可以接受鼠标的事件对象。 而currentTarget则是随着事件流不同的阶段 指向流中当前的事件侦听对象。 比如一个影片剪辑包裹一个按钮 在按钮上点击 由此至终 target都是指向按钮,而如果除了侦听按钮的 MouseEvent.CLICK事件外 还令上层影片剪辑同时侦听 MouseEvent.CLICK事件的话,因为沿途有侦听 在冒泡阶段 事件流就会针对这个侦听作出响应。 亦即是说 只有侦听的对象才会令到 currentTarget对象产生变化。 这种事件机制的好处是保证了整个影片所有对象都平等地分享同一个鼠标或键盘等交互事件的消费,不会被提前拦截而令后续对象没法侦听到。
|
这篇关于Event的target和currentTarget的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!