在Flash 4中,只有通过按钮才可以控制响应事件。但是Flash 5中增强了对键盘事件的响应,除了使用on命令以外,程序中还可以通过对象key动态判断某一个键是否被按下;而且,MC除了也可以响应鼠标和键盘事件,还可以响应桢事件。
on语句
进入一个按钮的Action Script编辑窗口,选择Actionson命令双击,将在右边的编辑栏出现下面的语句就是on语句的一般形式:
on (<事件>){
}
在参数栏中将出现一些复选框,可以选择的事件有8种:
Press 当鼠标在按钮上按下时激发
Release 当鼠标在按钮上松开时激发
Release Outside 当鼠标在按钮上按下并在按钮以外区域松开时激发
Roll Over 当鼠标移动到按钮上时激发
Roll Out 当鼠标从按钮上移出时激发
Drag Over 当鼠标在拖拽状态下移动到按钮上时激发
Drag Out 当鼠标在拖拽状态下从按钮上移出时激发
Key Press 当按下键盘上的某个有效键时激发
当按下某一个键的时候,会激发按钮的Key Press事件。在on语句中,以下按钮不能激发Key Press事件。
Esc、F1-F12、Ctrl、Alt、Shift、Num Lock、Caps Lock、Print Scrn、Scroll Lock、Pause、Windows专用键。除了这些键之外,也不能够响应任何的组合键。 键盘对象Key:
在Flash 5中Key中定义了一些键值常量和函数如下所示
BACKSPACE Backspace(<-)键
CAPSLOCK CapsLock键
CONTROL Ctrl键
DELETEKEY Delete(Del)键
DOWN 方向下键
END End键
ENTER Enter(回车)键
ESCAPE Esc键
getAscii 获取最后一个按下或松开的键的对应字符的Ascii码
getCode 获取最后一个被按下的键的键盘扫描码
HOME Home键
INSERT Insert(Ins)键
isDown 当指定键被按下时返回True值
isToggled 当指定键被锁定时返回True值
LEFT 方向左键
PGDN PageDown(PGDN)键
PGUP PageUp(PGUP)键
RIGHT 方向右键
SHIFT Shift键
SPACE 空格键
TAB Tab键
UP 方向上键
从以上的定义中可以看到,对象Key中提供了四个非常有用处的函数getAscii,getCode,isDown和isToggled。通过这四个函数,我们可以在动画中的任何一个位置来响应用户的按键,大大增强了程序与用户的交互性。关于如何通过对象Key来实现用户与Flash动画之间的交互,请看后面的实例。
鼠标对象Mouse
而对鼠标事件的响应只能通过按钮来实现。但是Flash 5中也增强了对鼠标的控制。对象Mouse中提供了两个函数:
Hide 隐藏鼠标指针
Show 显示鼠标指针
除了提供了一个Mouse对象之外,还提供了两个属性_xmouse和_ymouse,通过引用这两个属性,可以实时得到鼠标指针的x和y坐标。但是不能通过对它们赋值来改变数标志桢的位置。
onClipEvent语句
进入一个MC的Action Script编辑窗口,选择ActionsonClipEvent命令双击,将在右边的编辑栏出现下面的语句就是onClipEvent语句的一般形式:
onClipEvent(<事件>){ …}
MC可以响应的事件一共有9种,您可以在参数栏中选择的事件如下:
load 载入MC的时候激发
enterFrame 载入MC后播放第一桢时激发
unload 卸载MC的时候激发
mouseDown 鼠标按钮按下时激发
mouseUp 鼠标按钮释放时激发
mouseMove 鼠标移动时激发
keyDown 按下键盘任意键的时候激发
keyUp 放开键盘任意键的时候激发
data 不明
利用onClipEvent语句,我们可以非常容易的实现一些特殊效果,比如鼠标轨迹跟踪,鼠标坐标的实时显示,还有MC之间的同步等。