在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中定义了一些键值常量和函数如下所示
BACKSPACEBackspace(<-)键
CAPSLOCKCapsLock键
CONTROLCtrl键
DELETEKEYDelete(Del)键
DOWN方向下键
ENDEnd键
ENTEREnter(回车)键
ESCAPEEsc键
getAscii获取最后一个按下或松开的键的对应字符的Ascii码
getCode获取最后一个被按下的键的键盘扫描码
HOMEHome键
INSERTInsert(Ins)键
isDown当指定键被按下时返回True值
isToggled当指定键被锁定时返回True值
LEFT方向左键
PGDNPageDown(PGDN)键
PGUPPageUp(PGUP)键
RIGHT方向右键
SHIFTShift键
SPACE空格键
TABTab键
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之间的同步等。