ActionScript3(AS3)类库学习之(九)——响应鼠标和键盘

一.使用自定义光标

ActionScript支持自定义的光标样式

1.定义光标样式

用MouseCursorData类来定义光标样式

a.新建样式

var mouseCursorData:MouseCursorData = new MouseCursorData();

 

b.用data:Vector.<BitmapData>属性来放光标的图像,最大光标大小为 32x32 像素。可以提供多个图像。

 

c.如果有多个光标图像,可以将frameRate设置为大于0,使光标按这个帧速率播放。


d.用hotSpot来定义鼠标单击所在的点。

2.使用光标样式

用registerCursor(name:String, cursor:MouseCursorData)和unregisterCursor(name:String)来使用和取消使用cursor

3.显示或隐藏光标

用show和hide来显示和隐藏光标。

二.捕获鼠标事件

1.可以捕获的鼠标事件

CLICK:单击左键
DOUBLE_CLICK:双击左键
MIDDLE_CLICK
MIDDLE_MOUSE_DOWN
MIDDLE_MOUSE_UP
MOUSE_DOWN
MOUSE_MOVE
MOUSE_OUT:每次鼠标离开显示对象容器的任何子对象区域时都会发生
MOUSE_OVER
MOUSE_UP
MOUSE_WHEEL
RELEASE_OUTSIDE:用户首先在 InteractiveObject 实例上按下鼠标,然后将指针设备移离 InteractiveObject 实例,释放鼠标时调度。
RIGHT_CLICK
RIGHT_MOUSE_DOWN
RIGHT_MOUSE_UP
ROLL_OUT:当鼠标离开显示对象区域或任何其子级区域并转到除其子级以外的对象时发生
ROLL_OVER

2.其他按键信息

检测鼠标事件发生的时候,其他一些按键处于什么状态
altKey:表示 Alt 键是处于活动状态 (true) 还是非活动状态 (false)。
buttonDown:表示鼠标主按键是已按下 (true) 还是未按下 (false)。
clickCount:表示鼠标按下事件是否为多击序列的一部分。
commandKey:表示是否已激活 Command 键(仅限 Mac)。commandKey 属性的值将与 Mac 中 ctrlKey 属性的值相同。
controlKey:表示在 Mac 中是否已激活 Control 键,以及在 Windows 或 Linux 中是否已激活 Ctrl 键。
ctrlKey:在 Windows 或 Linux 中,表示 Ctrl 键是处于活动状态 (true) 还是非活动状态 (false)。
shiftKey:表示 Shift 键是处于活动状态 (true) 还是非活动状态 (false)。

3.鼠标移动信息

localX:禁用鼠标锁定时,事件发生点相对于所属 Sprite 的水平坐标。
localY:禁用鼠标锁定时,事件发生点相对于所属 Sprite 的垂直坐标。
movementX:启用鼠标锁定时,自上一次鼠标事件以来鼠标位置在 X 方向的更改。
movementY:启用鼠标锁定时,自上一次鼠标事件以来鼠标位置在 Y 方向的更改。
stageX:事件发生点在全局舞台坐标中的水平坐标。
stageY:事件发生点在全局舞台坐标中的垂直坐标。
delta:表示用户将鼠标滚轮每滚动一个单位应滚动多少行。正值表示向上滚动;负值表示向下滚动。通常所设的值为 1 到 3,值越大,滚动得越快。此设置取决于设备和操作系统,并且通常可由用户配置。


三.捕获键盘事件

1.捕获方法

可以将键盘事件添加到任意interactiveobject上, 但是比较常见的是加在Stage上和TextField对象上。

如果要加在其他的对象上,需要把其该对象设置为焦点,不然不会捕获到键盘事件!

但是就算将对象设置为焦点了,用浏览器打开还是不能很好的捕获键盘事件,所以最好是加在Stage上或TextField对象上。


2.可以捕获的键盘事件

KEY_DOWN
KEY_UP

3.其他按键信息

检测键盘事件发生的时候,其他一些按键处于什么状态
altKey:表示 Alt 键是处于活动状态 (true) 还是非活动状态 (false)。
commandKey:表示是否已激活 Command 键(仅限 Mac)。commandKey 属性的值将与 Mac 中 ctrlKey 属性的值相同。
controlKey:表示在 Mac 中是否已激活 Control 键,以及在 Windows 或 Linux 中是否已激活 Ctrl 键。
ctrlKey:在 Windows 或 Linux 中,表示 Ctrl 键是处于活动状态 (true) 还是非活动状态 (false)。
shiftKey:表示 Shift 键是处于活动状态 (true) 还是非活动状态 (false)。

4.keyCode和charCode

通过键盘事件的keyCode和charCode属性,以确定按下了哪个键,然后进行相关处理。
keyCode和charCode的主要区别是keyCode与键盘上的某个键相对应,charCode表示特定字符,该字符为keyCode对应的键在当前字符集中的数值。(默认字符集是 UTF-8,它支持 ASCII。)

5.一些常用keyCode

Keyboard.A到Z
NUMBER_0到NUMBER_9
NUMPAD数字键盘键
NUMPAD_0到NUMPAD_9 数字键盘上的0到9
NUMPAD_ADD,NUMPAD_SUBTRACT,NUMPAD_MULTIPLY,NUMPAD_DIVIDE,NUMPAD_ENTER,NUMPAD_DECIMAL
F1到F12
UP,DOWN,LEFT,RIGHT
BACKQUOTE `
BACKSLASH \
BACKSPACE
CAPS_LOCK
CONTROL
INSERT
DELETE
END
ENTER
EQUAL =
LEFTBRACKET [
RIGHTBRACKET ]
SEMICOLON ;
SHIFT
SLASH
SPACE
TAB       
MINUS    -
HOME
ESCAPE Esc
PERIOD .
QUOTE '
PAGE_DOWN
PAGE_UP   

posted @ 2013-04-13 21:43  Jingle Guo  阅读(1801)  评论(0编辑  收藏  举报