1.使用按钮检测
2.使用KEY对象
3、键盘监听的使用方法
4.使用视频剪辑的keyUp和keyDown事件来响应键盘
只要熟练掌握这些方法,然后加以运用,就会得到很多意想不到的效果。 下面我根据理论和我自己的想法简单介绍一下。
响应键盘第一种方法:利用按键检测响应键盘
在按钮的on事件处理函数中,不仅可以响应鼠标事件2d素材,还可以响应键盘事件。 如果在按钮的操作面板中添加以下代码,当按下键盘上的X键时,输出窗口会提示:X is Pressed
将其添加到按钮:
办公室:办公室"/>
on (keyPress "x") {trace("X 被按下");
}但请注意:检测键盘上的字母键时,字母应全部为小写。 如果你想检测键盘上的特殊按键,Flash中有一些特殊的代码来表示它们。 以下是一些常用功能键的代码列表: 如果要检测键盘上的按键,可以使用以下 ActionScript:
on (keyPress "") {
trace("Left is pressed");
}
另外,您可以为一个按钮添加多个on功能,或者将多个事件组合在一个on功能中,这样您就可以为按钮定义熟悉且常用的快捷键,如下所示:
on (release, keyPress "") {
_root.myMC.prevFrame();
}
on (release, keyPress "") {
_root.myMC.nextFrame();
}
上面的第一条语句通过单击 按钮或按键盘上的左箭头键控制影片剪辑 myMC 后退 1 帧,而上面的第二条语句通过单击 按钮或按键盘上的右箭头键控制影片。 将 myMC 向前剪辑 1 帧。
响应键盘的第二种方法:使用Key对象实现键盘响应操作
使用按钮来检测击键非常有效,但是不利于检测连续按下的按键,因此不适合制作一些由键盘控制的游戏。
这时候就需要用到Key对象了。 Key 对象包含在操作面板的“Object”/“Movie”目录下。 它由Flash内置的一系列方法、常量和函数组成。 您可以使用 Key 对象来检测是否按下了某个键。 如果想检测左方向键是否被按下,可以使用下面的ActionScript:
if (Key.isDown(Key.LEFT)) {
trace("左箭头向下");
函数Key.isDown返回一个布尔值,当数字中参数对应的按键被按下时返回true,否则返回false。 常量 Key.LEFT 表示键盘上的向左箭头键。 当按下左箭头键时游戏制作基础,该函数返回 true。
Key 对象中的常量代表键盘上相应的按键。 下面列出了一些基本常量:
部分功能键的表示:
键.退格键.ENTER 键。
全球分销网络
键.CAPSLOCK 键.ESCAPE 键.RIGHT
键.CONTROL键.HOME键.SHIFT
键.DELETEKEY 键.INSERT 键.SPACE
键.下键.左键.TAB
键.END 键.PGUP 键.UP
以上就是键盘上的功能键,那么键盘上的字母键如何表示呢?
Key对象提供了一个函数Key.getCode来实现该功能,如下所示:
if (Key.isDown(Key.getCode("x"))) {
trace("X 被按下");
上面脚本的意思是用Key.getCode函数告诉系统你是否按下了x键。 如果x键被按下,函数Key.isDown将返回true,并且X被按下将在输出窗口中输出。
响应键盘的第三种方法:使用键盘监听的方法来响应键盘(我个人习惯这种方法)
假设在影片剪辑的onClipEvent(enterFrame)事件处理程序中检测到按键,并且该影片剪辑所在的时间线较长,或者计算机运算速度较慢,可能会发生这种情况:即当某个按键被按下时在键盘上按下,当按下某个键时,onClipEvent(enterFrame)函数尚未处理,因此按键动作将被忽略。 这样的话,很多你想要的效果就达不到了。
此外,还有一个问题需要解决。 在一些游戏中(比如射击),我们需要按一次按键来执行一个动作(发射子弹)。 即使我们长时间按住某个键,也只能算作一次按键按下,而 Key 对象无法区分同一个按键是长时间按下还是快速按下多次。
所以想要解决这个问题就需要使用键盘监听的方法。 您可以使用“侦听器”来侦听键盘上的击键。
在使用侦听器之前,您首先需要创建它。 您可以使用如下命令告诉计算机您需要侦听某个事件:
Key.addListener(_root);
Key.addListener 命令将主时间线或某个影片剪辑作为其参数。 当监听的事件发生时游戏制作基础,可以使用该参数指定的对象来响应该事件。
上面的代码指定了响应该事件的主时间线。 为了让主时间轴能够响应这个事件,还需要设置相应的事件处理函数,否则设置监听器就没有意义了。
键盘监听有两个事件处理函数:onKeyUp和onKeyDown,如下所示:
Key.addListener(_root);
_root.onKeyUp = 函数() {
跟踪(Key.getAscii());
};
//该代码的含义是,当按下某个键并释放时,输出窗口会输出你按下的键的Ascii码。
当然,你也可以使用影片剪辑作为听键盘的对象。 您只需使用影片剪辑的路径而不是 _root 作为 Key.addListener 命令的参数即可。
例如,以下代码:
Key.addListener(_root.mc);
_root.mc.onKeyUp = 函数() {
跟踪(Key.getAscii());
};
该代码的含义是,当按下某个键并释放时,输出窗口将输出您按下的键的 Ascii 代码。 含义相似,但键盘监听对象不同。 一个是电影MC,另一个是主时间线。
响应键盘的第四种方法:利用影片剪辑的keyUp和keyDown事件来响应键盘
最后一种方法很容易被忽视,但也有一定的应用价值。 最重要的是要明确概念。
影片剪辑包含两个与键盘相关的事件keyUp和keyDown,它们也可以用来响应按键事件。
例如下面的代码:
onClipEvent (keyDown) {
跟踪(Key.getAscii());
//当键盘上的某个键被按下时,输出窗口将输出按下的键的Ascii码值。
函数Key.getAscii的意思是返回按键对应的ASCII码,该ASCII码是一个整数。 键盘上的每个字符都对应一个 ASCII 码。 例如字母A对应的ASCII码是65,B对应的ASCII码是66。a对应的ASCII码是97,b对应的ASCII码是98,+对应的ASCII码是43需要注意的是,只有字符键有 ASCII 码3D动画,键盘上的功能键没有 ASCII 码。
如果我想在输出窗口中输出按键对应的字符怎么办?
这时,可以使用String对象的fromCharCode函数将ASCII码转换为字符。 例如,将上例中的代码更改为以下内容:
onClipEvent (keyDown) {
跟踪(String.fromCharCode(Key.getAscii()));
};
//这意味着当按下键盘上的某个键时,会输出该按键对应的字符,当然功能键除外。
关于String对象的详细解释,可以在操作面板的“Object”/“Core”目录下查看。