ActionScript编程 鼠标事件
作用:
当操作鼠标时发生的事件。
说明:
鼠标事件是指与鼠标操作有关的事件。例如,单击事件、双击事件、鼠标按下事件、鼠标释放事件等。我的小学老师
鼠标事件都是由MouEvent类来管理,MouEvent类定义了与鼠标事件有关的属性、方法和事件。MouEvent类的属性如表7-3所示。
表7-3 MouEvent类的属性
属性 | 说明 |
altKey | 指示Alt键是否处于活动状态 |
buttonDown | 指示鼠标主按键是否被按下 |
ctrlKey | 指示Ctrl键是否处于活动状态 |
Delta | 指示用户将鼠标滚轮每滚动一个单位应滚动的行数 |
localX | 处暑谚语事件发生点的相对于包含Sprite诣的水平坐标 |
localY | 事件发生点的相对于包含Sprite的垂直坐标 |
relatedObject | 鼠标滑进滑出时指向的显示对象 |
shiftKey | 伟大英文 指示Shift键是处于活动状态 |
stageX | 事件发生点在全局舞台坐标中的水平坐标 |
水爆肚的做法stagey | 事件发生点在全局舞台坐标中的垂直坐标 |
| |
buttonDown属性是指鼠标事件发生时,鼠标是否处于按下的状态。如果处于按下状态,buttonDown属性为true;否则为fal。例如,当鼠标在某个对象中按下,buttonDown属性就为true。
relatedObject属性只有在鼠标滑进滑出事件发生时才有用。例如,当鼠标从一个对象移动到另一个对象时,会触发第一个对象的滑出事件,此时,relatedObject属性就引用另一个对象,如图7-7所示。
图7-7 重叠的两个对象
当鼠标从对象1水平向右滑出时,会触发滑出事件,发生滑出事件的同时,鼠标指针刚好在对象2上,事件侦听器中事件对象的relatedObject属性就是对象2。名字男生
由于relatedObject属性是对象,所以这个对象会有很多属性和方法,在调用这些属性和方法时,最好首先判断该对象是否存在,如下所示。
function mouOutHandler(event:MouEvent):void{
latedObject){银川必去的五大景点
trace("relatedObject = " + latedObject.name)
}
}
在某些特殊情况下,relatedObject属性是不存在的。例如,鼠标向上滑出对象1时,relatedObject属性就为null值,即没有引用对象,而此时如果调用了对象的方法和属性,就会发生错误。因此,要加一个条件判断relatedObject属性是否为null。由于null会被自动转换为fal,所以不需要event. relatedObject != fal的判断方法。
通过MouEvent类的localX、localY属性用于获取鼠标在显示实例中的本地坐标;stageX
、stageY属性用于获取鼠标的全局坐标。
交互显示对象可以提供响应用户鼠标行为的能力。交互显示对象的实例会针对鼠标的交互分派必要的事件。下面是几种常用的鼠标事件:
● CLICK(“click”) 当用户在交互显示对象上,按下并释放鼠标键时就会发生。
● DOUBLE_CLICK(“doubleClick”) 当用户在交互显示对象上,快速连续按下和释放鼠标键两次时就会发生。
● MOUSE_DOWN(“mouDown”) 当用户在交互显示对象上,按下鼠标键时就会发生。
● MOUSE_UP(“mouUp”) 当用户在交互显示对象上,释放鼠标键时就会发生。
● MOUSE_OVER(“mouOver”) 当用户从交互显示对象边界外,把鼠标指针移进边界内时就会发生。
● MOUSE_MOVE(“mouMove”) 当指针位于交互显示对象边界内时,只要用户移动
鼠标指针就会发生。
● MOUSE_OUT(“mouOut”) 当用户从交互显示对象边界内,把鼠标指针移出边界外时就会发生。
● MOUSE_WHEEL(“mouWheel”) 当鼠标指针位于交互显示对象上时,只要用户滚动鼠标滚轮就会发生。
怎样去除● ROLL_OUT(“rollOut”) 当鼠标指针从交互显示对象上移出时发生。
● ROLL_OVER(“rollOver”) 当鼠标指针移入到交互显示对象上时发生。
当使用鼠标的滚轮时,会触发mouWheel事件,MouEvent类的delta属性决定滚轮发生时的滚动值。在默认情况下,当滚动向上滚动时,delta属性为3;当滚轮向下滚动时,delta属性为-3。而且,MouEvent类的delta属性属于读写,可以自定义滚动值的大小。
如果要改变delta值,可以通过乘或除改变其大小:
ation += event.delta * 0.1;
使用mouWheel事件时要注意一点:当在编辑环境中测试mouWheel事件时,由于编辑环境的快捷键会屏蔽播放器的快捷键,需要单击对象激活后mouWheel事件才有效,但在播放器独立测试时,可以直接使用mouWheel事件。
示例:
在制作Flash动画时,通常需要在按钮实例上应用鼠标事件。例如在鼠标经过、按下和离开按钮时,按钮所显示的样式均不相同,如下所示。
button.addEventListener(MouEvent.MOUSE_OVER,over);
button.addEventListener(MouEvent.MOUSE_DOWN,down);
button.addEventListener(MouEvent.MOUSE_OUT,out);
function over(event:MouEvent):void{
//响应鼠标经过函数
button.scaleX = 1.1;
button.scaleY = 1.1;
button.alpha = 0.8;
}
//响应鼠标按下函数
function down(event:MouEvent):void{
button.scaleX = 1.2;
button.scaleY = 1.2;
button.alpha = 0.5;
ation = -30;
}
//响应鼠标离开函数
function out(event:MouEvent):void{
button.scaleX = 1;
button.scaleY = 1;
button.alpha = 1;
ation = 0;
}
执行上面的代码,当鼠标经过button按钮时,按钮实例会缩放1.1倍,并改变Alpha透明度为0.8;当鼠标单击button按钮时,按钮实例会绽放1.2倍,改变Alpha透明度为0.5,并放置-30度;当鼠标离开button按钮时,按钮实例的大小、Alpha透明度和角度会还原为初始状态。