Flash AS3学习之路—鼠标事件

转载 2015年07月10日 17:09:13

flash在很大一块程度上的应用为多媒体交互设计,交互顾名思义我们就得用鼠标去点啊点,在AS2中我们有对应的MouseDown、MouseUp、onPress、onRelease等一系列的鼠标动作。这些点来点去我们就可称为事件,而AS3对于事件的处理我们前面已经看到了通过addEventListener,移除的时候使用removeEventListener

事件的处理AS3中有专门的Event类来处理事件,Event类又包括以下几个子类

鼠标类:MouseEvent

键盘类:KeyboardEvent

时间类:TimerEvent

文本类:TextEvent

我们这篇方要来看看MouseEvent类,首先看看有哪些类型的鼠标事件,也就是MouseEvent类的公共变量

CLICK : String = "click"单击

DOUBLE_CLICK : String = "doubleClick" 双击

MOUSE_DOWN : String = "mouseDown" 按下
MOUSE_LEAVE : String = "mouseLeave" 鼠标移开舞台
MOUSE_MOVE : String = "mouseMove" 移动
MOUSE_OUT : String = "mouseOut"  移出
MOUSE_OVER : String = "mouseOver"  移过
MOUSE_UP : String = "mouseUp" 提起
MOUSE_WHEEL : String = "mouseWheel" 滚轴滚动
ROLL_OUT : String = "rollOut" 滑入
ROLL_OVER : String = "rollOver" 滑出

 

下面来做个小例子,我们打开第一篇中的例子,将下面的语句

btn1.addEventListener(MouseEvent.MOUSE_UP,ClickMovie1);

换成

btn1.addEventListener(MouseEvent.MOUSE_MOVE,ClickMovie1);

是不是一移动就会trace很多遍,大家慢慢把上面的红色关键字用MouseEvent类的公共变量一个个替换,看看具体效果吧,注意在使用DOUBLE_CLICK,必腨先对对象开启双击开关,如 btn1.doubleClickEnabled=true;使用MOUSE_WHEEL时必须先对对象单击一下,使对象获得焦点,再滚动滚轴

明眼的大家或许有疑问,MOUSE_OVER与ROLL_OVER及MOUSE_OUT与ROLL_OVER是不是相同,的确在很多时候它们实现的是同样的功能,但有差别是肯定的,否则ADOBE那帮家伙们不会无缘无故的去搞出另一个事件出来,那么到底有什么差别,我们来做个实验:

新建一个AS3文档,新建一个铵钮,然后再将这个按钮转换成一个影片剪辑,命名为Movie1,然后在Movie1里面再新建一个背景层置立于按钮的下面,用矩形工具画一个大于按钮的图形。同样的我们通过文档类,新建一个as文件,在其中输入如下代码:

package {

    import flash.events.MouseEvent;
    import flash.display.SimpleButton;
    import flash.display.MovieClip;
    public class main extends MovieClip {

        public function ClickMovie1(event:MouseEvent):void {
            trace("Me");
        }

        public function main():void {
            Movie1.addEventListener(MouseEvent.ROLL_OVER,ClickMovie1);
            //Movie1.addEventListener(MouseEvent.MOUSE_OVER,ClickMovie1);
            Movie1.addEventListener(MouseEvent.ROLL_OUT,ClickMovie1);
            //Movie1.addEventListener(MouseEvent.MOUSE_OUT,ClickMovie1);
        }
    }
}

我们运行,用鼠标移动看看效果,输出几个ME,如果正常的话应该输出两个,现在我们再将注释换一下为,

//Movie1.addEventListener(MouseEvent.ROLL_OVER,ClickMovie1);
            Movie1.addEventListener(MouseEvent.MOUSE_OVER,ClickMovie1);
           // Movie1.addEventListener(MouseEvent.ROLL_OUT,ClickMovie1);
            Movie1.addEventListener(MouseEvent.MOUSE_OUT,ClickMovie1);

我们再运行,移过后发现这次不止两个,而是六个,大家是不是发现什么问题了

我们还可以再继续做实现,我们将里面的按钮在添加一个事件,将里面的按钮命名为btn1,并在as文件中添加一个新的处理函数

public function ClickMovie2(event:MouseEvent):void {
            trace("Me1");
        }

然后注册btn1事件,采用ROLL

         
            Movie1.addEventListener(MouseEvent.ROLL_OVER,ClickMovie1);
            Movie1.addEventListener(MouseEvent.ROLL_OUT,ClickMovie1);
            Movie1.btn1.addEventListener(MouseEvent.ROLL_OVER,ClickMovie2);
            Movie1.btn1.addEventListener(MouseEvent.ROLL_OUT,ClickMovie2);

这是会分别输出ME,ME1,ME1,ME

反之我们换为MOUSE,则输出

Me
Me
Me1
Me
Me1
Me
Me
Me

Flash AS3 鼠标事件使用详解

Flash AS3鼠标事件使用详解-Flash actionscript 鼠标事件(MouseEvent)和鼠标位置(AS3鼠标坐标总结)是RIA中最重要的人机交互途径。最近在做一个动态产品展示的系...

Flash AS3鼠标事件使用

鼠标事件(MouseEvent)和鼠标位置(AS3鼠标坐标总结)是RIA中最重要的人机交互途径。 1 鼠标事件分为MOUSE_OVER, MOUSE_MOVE, MOUSE_DOWN, MOUSE_...
  • gtncwy
  • gtncwy
  • 2012年05月29日 13:59
  • 1069

Qt学习之路——— Qt键盘、鼠标事件的处理

事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。对于初学者,总会对Qt中信号和事件的概念混淆不清。其实,记住事件比信号更底层就可以了。比如说,我们用鼠标按下界面上的一个按...

AS3中鼠标坐标与鼠标事件总结

flex技术(www.flexjs.cn) 温馨提示:以下要使用以上代码别忘了 import flash.geom.Point; 1 鼠标事件分为MOUSE_OVER, MOUSE_MOVE,...

Flash AS3 显示对象对鼠标单击,双击,拖拽事件的处理

AS3.0 增加了对鼠标事件DOUBLE_CLICK的支持,AS3对事件的触发流程为 down,up,click,down,up,doubleclick. 这带来一个问题:如果我对显示对象同时增加了...

flash鼠标事件处理

  • 2013年05月09日 11:42
  • 18KB
  • 下载

Flash鼠标事件

  • 2014年11月02日 13:14
  • 57KB
  • 下载

flash 的鼠标事件详解

Flash AS3鼠标事件使用详解  鼠标事件(MouseEvent)和鼠标位置(AS3鼠标坐标总结)是RIA中最重要的人机交互途径。最近在做一个动态产品展示的系统ProdutShow的时候才发现自己...

AS3菜鸟晋级大神必经之路系列(一) 理解flash的显示列表

理解flash的显示列表

GTK进阶学习:鼠标事件 源代码

  • 2015年01月27日 14:21
  • 5KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Flash AS3学习之路—鼠标事件
举报原因:
原因补充:

(最多只允许输入30个字)