AS3:辨析ROLL_OVER与MOUSE_OVER,ROLL_OUT与MOUSE_OUT

ROLL_OVER与MOUSE_OVER的调度的区别

  • 可视组件在鼠标进入该组件时会调度MOUSE_OVER事件,即使是从其子组件移到该组件依然会触发该事件。
  • 可视组件在鼠标从不是其子组件的其余组件中进入该组件时会调度ROLL_OVER事件,直观来看,就是鼠标从外部移入该组件才调用。

ROLL_OUT与MOUSE_OUT的调度的区别

  • 可视组件在鼠标移出该组件时会调度MOUSE_OUT事件,即使是移到该组件的子组件依然会触发该事件。
  • 可视组件在鼠标移到不是其子组件的其余组件中会调度ROLL_OUT事件,直观来看,就是鼠标移到该组件外部才调用。

在含有子组件的可视组件上监听四个事件

  • 鼠标由外部进入母组件时能监听到由母组件调度的ROLL_OVER与MOUSE_OVER事件;
  • 鼠标由母组件进入子组件时能监听到由子组件调度的MOUSE_OVER事件和母组件调度的MOUSE_OUT事件
    • 此时子组件还调度了ROLL_OVER事件,但是由于ROLL_OVER没有冒泡阶段(详见AS3:事件流机制),因此其母组件不能监听到该事件;
  • 鼠标由子组件移到母组件时能监听到由子组件调度的MOUSE_OUT事件和母组件调度的MOUSE_OVER事件;
    • 同样的,此时子组件还调度了ROLL_OUT事件,但是母组件同样监听不到;
  • 鼠标由母组件移到外部时能监听到由母组件调度的ROLL_OUT与MOUSE_OUT事件;

总结

MOUSE事件与ROLL事件的区别在于如下两点:

  1. 鼠标在母组件与子组件上移入移出时是否调度的区别。
  2. MOUSE事件具有冒泡阶段而ROLL事件没有,决定了在子组件调度事件时母组件是否能监听到的区别。

总之,ROLL事件将整个母组件包括其子组件看成一个组件,移入移出整个组件的边界时母组件才调度事件并能监听该事件。

FLASH示例

在母容器设置监听这四个事件,显示内容前一个为调度事件来源,后一个为调度的事件名称。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值