您可以使用内置的 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 类。