10.4 常用事件类型

上一篇 / 下一篇  2009-04-11 17:05:14

10.4 常用事件类型

Flash Player API自身定义了多个Event类的派生类,在ActionScript. 3.0中,这些类定义在flash.events包中,其中每一个Event类的派生类都包含了一系列事件类型。并且还可以创建用户自定义事件类型。在本节中,将来介绍一些常见的事件类型,例如鼠标事件、键盘事件和用户自定义事件等等。

10.4.1 鼠标事件

鼠标操作是最常用的操作,例如鼠标单击、鼠标双击、移动和离开等操作。在ActionScript. 3.0中,与鼠标操作相关的事件都存放在Event类的派生类MouseEvent类中。每次发生鼠标事件时,Flash Player都会将MouseEvent对象调度到事件流中。鼠标事件通常由使用指针的用户输入设备(如鼠标或者轨迹球)生成。

鼠标事件包含许多事件类型,在MouseEvent类中,这些事件类型是由静态常量来定义,表10-4列出MouseEvent类中的静态常量。

10-4 MouseEvent类静态常量

常量

说明

CLICK

定义click事件对象的type属性值

DOUBLE_CLICK

定义doubleClick事件对象的type属性值

MOUSE_DOWN

定义mouseDown事件对象的type属性值

MOUSE_MOVE

定义mouseMove事件对象的type属性值

MOUSE_OUT

定义mouseOut事件对象的type属性值

MOUSE_OVER

定义mouseOver事件对象的type属性值

MOUSE_UP

定义mouseUp事件对象的type属性值

MOUSE_WHEEL

定义mouseWheel事件对象的type属性值

ROLL_OUT

定义rollOut事件对象的type属性值

ROLL_OVER

定义rollOver事件对象的type属性值

每一个静态常量都表示一种具体的鼠标事件类型,例如CLICK表示鼠标单击事件,DOUBLE_CLICK表示鼠标双击事件等等。在程序设计过程中,可以对这些鼠标事件进行监听,当事件触发时执行相应的操作。

下面创建一个使用鼠标单击事件的示例,如代码10.6所示:

代码10.6 鼠标单击事件

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initapp()">

   <mx:Script>

   <![CDATA[

   import mx.controls.Alert;

             public function initapp():void

             {

                      this.addEventListener(MouseEvent.CLICK,clickhandler);

             }

             public function clickhandler(e:MouseEvent):void

             {

                      Alert.show("您触发事件的类型为:"+e.type)

             }

   ]]>

   </mx:Script>       

</mx:Application>

在上述代码中,在程序初始化函数initapp()中使用addEventListener()方法,添加对MouseEvent.CLICK事件的监听器,并设计事件监听处理函数clickhandler,输出当前事件的类型。运行程序,在页面上单击其具体效果如图10-8所示。

10-8 鼠标单击事件效果

在网站开发中,鼠标事件使用最多的是鼠标移动和离开事件,下面通过监听这两种事件,创建一个鼠标经过时切换图片的示例,如代码10.7所示。

代码10.7 鼠标经过图片

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="initapp()">

        <mx:Script>

                  <![CDATA[

                           import mx.controls.Alert;

                           public var img_name:String;

                           public function initapp():void

                           {

                                    img.addEventListener(MouseEvent.MOUSE_MOVE,movehandler);

                                    img.addEventListener(MouseEvent.MOUSE_OUT,outhandler);

                                    img.addEventListener(MouseEvent.MOUSE_DOWN,downhandler);

                           }

                           public function movehandler(e:MouseEvent):void

                           {

                                    img.source="img/6.jpeg"

                                    img_name="苹果蝴蝶"

                           }

                           public function outhandler(e:MouseEvent):void

                           {

                                    img.source="img/3.jpg"        

                                    img_name="小小教书匠"

                           }

                           public function downhandler(e:MouseEvent):void

                           {

                                    Alert.show("你选择的操作是:"+e.type+"当前的图片名称为:"+img_name);

                           }                

                  ]]>

        </mx:Script>

        <mx:Panel width="312" height="272" layout="vertical" horizontalAlign="center" title="鼠标事件示例" fontSize="12">

                  <mx:Image height="230" width="290" id="img" source="img/3.jpg" name="小小教书匠"/>

        </mx:Panel>

</mx:Application>

在上述代码中,首先创建程序初始化函数initapp(),在该函数中,使用addEventListener()方法添加了三个事件监听器,分别监听MOUSE_MOVEMOUSE_OUTMOUSE_DOWN事件。接下来创建这三个事件监听器的处理函数:movehandler()outhandler()downhandler()。函数movehandler()outhandler()分别设置当鼠标移动到图片和鼠标离开图片时,Image组件显示的图片的路径和图片名称;函数downhandler()设置当鼠标按下时,显示当前图片的名称。


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

关于作者