10.4 常用事件类型
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_MOVE、MOUSE_OUT和MOUSE_DOWN事件。接下来创建这三个事件监听器的处理函数:movehandler()、outhandler()和downhandler()。函数movehandler()和outhandler()分别设置当鼠标移动到图片和鼠标离开图片时,Image组件显示的图片的路径和图片名称;函数downhandler()设置当鼠标按下时,显示当前图片的名称。
TAG:





