MOUSE_OVER & ROLL_OVER

简介:

MOUSE_OVER & ROLL_OVER
2009年7月17日 | 标签:
转:http://www.youyee.org/viewpoint/article_view.php?topic_id=90

在某种意义上。RollOver和MouseOver是一样的,他们都是监听鼠标在DisplayObject上的触发事件,很多时候大家都可以互换使用。正如RollOut和MouseOut一样,但是有人便开始问了,如果一样为什么还要存在两个这样的事件呢?不是多此一举了吗?

实际上RollOver和MouseOver是有微妙的差别的。

假设现在存在一个Sprite姑且命名其为father,然后Sprite里面有一个背景(DisplayObject)和一个按钮(SimpleButton),背景面积比按钮要大且处于最低层(index = 0),按钮处于背景的正中处于背景的上一层(index = 1),那么此时如果我们先开始对father监听MouseEvent.MouseOver事件:

1st.鼠标移到背景上,但还没有触碰到按钮,这个时候father发出了一个MouseEvent.MOUSE_OVER事件。

2nd.接着把鼠标继续移到按钮上,此时father又会发出一个MouseEvent.MOUSE_OVER事件。

然后我们继续对father监听MouseEvent.ROLL_OVER事件:

1st.鼠标移到背景上,但还没有触碰到按钮,这个时候father发出了一个MouseEvent.ROLL_OVER事件。

2nd.接着把鼠标继续移到按钮上,此时father并没有发出MouseEvent.ROLL_OVER事件。

从上面的小实验应该能够大体区分出两个事件的微妙与不同了,相信有经验的朋友也一定猜出来其中的缘由了,之所以造成两个事件不同的本质因素就是冒泡机制 (Bubble),ROLL_OVER明显不具备冒泡属性,而MOUSE_OVER则有,所以即便是子元素(Child)的鼠标事件也会一层层的冒出来被addEventListener接收到。从而也可以解释MouseEvent.MOUSE_OUT和MouseEvent.ROLL_OVER之间的微妙差别了
本文转自jiahuafu博客园博客,原文链接http://www.cnblogs.com/jiahuafu/archive/2010/12/01/1892605.html如需转载请自行联系原作者

jiahuafu

相关文章
|
算法 C++
【C++11算法】move和move_backward
【C++11算法】move和move_backward
119 0
|
11月前
flag_in_your_hand
flag_in_your_hand
46 0
|
数据库
MOVE
MOVE
88 0
#748 – 获得按下时对应位置点的大小(Getting the Size of a Contact Point during Raw Touch)
原文:#748 – 获得按下时对应位置点的大小(Getting the Size of a Contact Point during Raw Touch) 原文地址:https://wpf.2000things.com/2013/02/04/748-getting-the-size-of-a-contact-point-during-raw-touch/ 在低级别的触屏Touch 事件中,我们可以获得手指与屏幕接触的位置的面积大小。
979 0
|
Web App开发 JavaScript 测试技术
|
JavaScript 前端开发
|
消息中间件