mouseOver 和rollOver区别

mouseOver的bubbles是true,rollOver的bubbles是false。

两者的区别,其实要在侦听MOUSE_OUT事件时,变得很明显。

假如一个Canvas中间包含一个Button,比较侦听canvas的MOUSE_OUT和ROLL_OUT事件:
1.canvas.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
这种情况下,鼠标移到button后,鼠标移开button经过canvas时,会触发canvas的MOUSE_OUT和MOUSE_OVER事件。因为MOUSE_OVER/MOUSE_OUT事件是有冒泡阶段的,当button触发事件之后,事件会冒泡传递给父容器(即canvas),所以会触发canvas上的事件。

2.canvas.addEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
这种情况下,鼠标只有移开整个canvas才会触发canvas的ROLL_OUT事件。而即使鼠标移到button上再移开,也不会执行触发canvas的ROLL_OUT事件。因为ROLL_OUT事件不会冒泡往父容器传递。


package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	
	public class DDDDD extends Sprite
	{
		public function DDDDD()
		{
			var bt:Sprite=new Sprite();
			bt.graphics.beginFill(0x12d211,1)
			bt.graphics.drawRect(0,0,50,50);
			bt.graphics.endFill();
			
			var sp:Sprite=new Sprite();
			sp.graphics.beginFill(0x123211,1)
			sp.graphics.drawRect(0,0,100,100);
			sp.graphics.endFill();
			sp.addChild(bt);
			this.addChild(sp);
			
 			sp.addEventListener(MouseEvent.MOUSE_OUT,ddd2);
		}
 
		private function ddd2(evt:Event):void{
			trace("sp")
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值