响应键盘的方法主要的几种方法,你知道吗?

响应键盘的方法主要的几种方法,你知道吗?

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”目录下查看。

基础制作游戏有哪些_游戏制作基础_制作游戏入门教程

文章来源:https://www.toutiao.com/article/6799815857158488590/?