![]() ![]() | |
您可以使用内置的 Key 类的方法来检测用户上次按下的键。Key 类不需要构造函数;要使用它的方法,您只需调用该类自身上的方法即可,如下面的示例所示:
Key.getCode();
您可以获得按键的虚拟键控代码或 ASCII(美国信息交换标准码)值:
getCode() 方法。getAscii() 方法。键盘上的每一个实际的键都有一个虚拟键控代码。例如,左箭头键的虚拟键控代码为 37。通过使用虚拟键控代码,可以确保 SWF 文件的控制在每个键盘上都相同,而不用考虑语言或平台。
ASCII 值分配给每个字符集的前 127 个字符。ASCII 值提供了有关屏幕上字符的信息。例如,字母“A”和字母“a”有不同的 ASCII 值。
要确定使用哪些键并确定它们的虚拟键控代码,可使用下面其中一种方式:
onClipEvent() 处理函数分配给影片剪辑,然后选择“控制”>“测试影片”并按所需键。
onClipEvent(keyDown) {
trace(Key.getCode());
}
所需键的键控代码将出现在“输出”面板中。
通常是在事件处理函数内使用 Key 类方法。
在下面的 SWF 文件中,您使用箭头键移动汽车。Key.isDown() 方法表明当前按住的键是左箭头键、右箭头键、上箭头键、还是下箭头键。事件处理函数 onEnterFrame 通过 if 语句确定 Key.isDown(keyCode) 的值。根据该值,处理函数会指示 Flash Player 更新汽车的位置并显示方向。
以下步骤介绍如何捕获按键动作来根据当前按下的箭头键(向上、向下、向左或向右)在舞台上向上、向下、向左或向右移动影片剪辑。影片剪辑被限定在一个 400 像素宽、300 像素高的任意区域内。此外,文本字段显示所按下的键的名称。
创建一个能被键盘激活的影片剪辑: 在此示例中,影片剪辑实例名称为 car。
display_txt。
注意:不要把变量名和实例名混淆。有关更多信息,请参见关于文本字段实例和变量名称。
distance 变量并将它的初始值设置为 10。
var distance = 10;
car.onEnterFrame = function() {
}
with 语句添加到 onEnterFrame 处理函数的主体中,并将 car 指定为 with 语句的您的代码应该如下所示:
var distance = 10;
car.onEnterFrame = function() {
with (car) {
}
}
with 语句的主体中。您的代码应该如下所示:
distance = 10;
car.onEnterFrame = function() {
with (car) {
if (Key.isDown(Key.RIGHT)) {
_x += distance;
if (_x >= 400) {
_x = 400;
}
_root.display_txt.text = "Right";
}
}
}
如果按下了右箭头键,则汽车的 _x 属性将按 distance 变量指定的量增加值。下一个 if 语句测试剪辑的 _x 属性的值是否大于或等于 400 (if(_x >=400));如果是,则其位置将固定在 400。另外,Right 一词应显示在 SWF 文件中。
var distance = 10;
car.onEnterFrame = function() {
with (car) {
if (Key.isDown(Key.RIGHT)) {
_x += distance;
if (_x >= 400) {
_x = 400;
}
_root.display_txt.text = "Right";
} else if (Key.isDown(Key.LEFT)) {
_x -= distance;
if (_x < 0) {
_x = 0;
}
_root.display_txt.text = "Left";
} else if (Key.isDown(Key.UP)) {
_y -= distance;
if (_y < 0) {
_y = 0 ;
}
_root.display_txt.text = "Up";
} else if (Key.isDown(Key.DOWN)) {
_y += distance;
if (_y > 300) {
_y = 300;
}
_root.display_txt.text = "Down";
}
}
}
有关 Key 类的方法的更多信息,请参见 Key 类。
![]() ![]() | |