您的位置:首页 > 移动开发 > Objective-C

Actionscript 3.0事件之Mouse_OVER,MOUSE_OUT,ROLL_OVER,ROLL_OUT的区别

2011-05-01 01:19 465 查看
最近研究了actionscript 3.0的事件机制,其实不难。但是在鼠标事件中,有几个事件类型非常相近,一开始没有在意,以至于陷于困难。后来回头再细看AS的事件机制,突然恍然大悟。起个例子吧:

package

{

import flash.display.MovieClip;

import flash.display.Sprite;

import flash.events.MouseEvent;

public class MouseEvents extends Sprite

{

public function MouseEvents()

{

init();

}

private function init():void

{

var sp:Sprite=new MovieClip();

addChild(sp);

sp.graphics.beginFill(0xff0000);

sp.graphics.drawCircle(0,0,50);

sp.graphics .endFill();

sp.x=stage.stageWidth/2;

sp.y=stage.stageHeight/2;

var sp1:Sprite=new Sprite();

sp.addChild(sp1);

sp1.graphics.beginFill(0xff7700);

sp1.graphics.drawCircle(0,0,25);

sp1.graphics .endFill();

sp.addEventListener(MouseEvent.MOUSE_OVER,onMRO);

sp.addEventListener(MouseEvent.MOUSE_OUT,onMRO);

sp.addEventListener(MouseEvent.ROLL_OVER,onMRO);

sp.addEventListener(MouseEvent.ROLL_OUT,onMRO);

sp.addEventListener(MouseEvent.MOUSE_WHEEL,onMRO);

sp1.addEventListener(MouseEvent.MOUSE_OVER,onMRO);

sp1.addEventListener(MouseEvent.MOUSE_OUT,onMRO);

sp1.addEventListener(MouseEvent.ROLL_OVER,onMRO);

sp1.addEventListener(MouseEvent.ROLL_OUT,onMRO);

sp1.addEventListener(MouseEvent.MOUSE_WHEEL,onMRO);

}

public function onMRO(e:MouseEvent):void

{

trace("目标对象:"+e.target+" 当前对象:"+e.currentTarget+" 事件类型:"+e.type+" 事件阶段:"+e.eventPhase);

}

}

}

 

鼠标光标移动过程:从舞台空白地方移入sp,再移入sp1,然后再逆向移动。结果如下:

 

目标对象:[object MovieClip] 当前对象:[object MovieClip] 事件类型:rollOver 事件阶段:2

目标对象:[object MovieClip] 当前对象:[object MovieClip] 事件类型:mouseOver 事件阶段:2

目标对象:[object MovieClip] 当前对象:[object MovieClip] 事件类型:mouseOut 事件阶段:2

目标对象:[object Sprite] 当前对象:[object Sprite] 事件类型:rollOver 事件阶段:2

目标对象:[object Sprite] 当前对象:[object Sprite] 事件类型:mouseOver 事件阶段:2

目标对象:[object Sprite] 当前对象:[object MovieClip] 事件类型:mouseOver 事件阶段:3

目标对象:[object Sprite] 当前对象:[object Sprite] 事件类型:mouseWheel 事件阶段:2

目标对象:[object Sprite] 当前对象:[object MovieClip] 事件类型:mouseWheel 事件阶段:3

目标对象:[object Sprite] 当前对象:[object Sprite] 事件类型:mouseOut 事件阶段:2

目标对象:[object Sprite] 当前对象:[object MovieClip] 事件类型:mouseOut 事件阶段:3

目标对象:[object Sprite] 当前对象:[object Sprite] 事件类型:rollOut 事件阶段:2

目标对象:[object MovieClip] 当前对象:[object MovieClip] 事件类型:mouseOver 事件阶段:2

目标对象:[object MovieClip] 当前对象:[object MovieClip] 事件类型:mouseOut 事件阶段:2

目标对象:[object MovieClip] 当前对象:[object MovieClip] 事件类型:rollOut 事件阶段:2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息