讨论:RollOver和MouseOver

在某种意义上。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)的鼠标事件也会一层层的冒出来被监听器接收到。从而也可以解释MouseEvent.MOUSE_OUT和MouseEvent.ROLL_OVER之间的微妙差别了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值