教程/flash/技巧 FLASH中响应键盘事件的四种方法

2016-01-29 14:33 152 1 收藏

教程/flash/技巧 FLASH中响应键盘事件的四种方法,教程/flash/技巧 FLASH中响应键盘事件的四种方法

【 tulaoshi.com - Flash 】

响应键盘的方法作为AS中的一个重要组成部分,在如今已经越来越广泛的使用,尤其是在 FLASH游戏制作中,如果缺少了响应键盘的方法,那是不可能的,而响应键盘的方法主要的四种,分别是:

1、利用按钮进行检测
2、利用KEY对象
3、利用键盘侦听的方法
4、利用影片剪辑的keyUp和keyDown事件来实现响应键盘

  

只有熟练掌握了这些方法,然后加以变通的话,就会得到很多意想不到的效果,下面我就结合理论和自己的想法简要的介绍一下。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

第一种响应键盘的方法:利用按钮进行检测来实现响应键盘

在按钮的on事件处理函数中不但可以对鼠标事件作出响应,而且可以对键盘事件作出响应。 如在按钮的动作面板中加入如下所示的代码,在敲击键盘上的X键时输出窗口中将提示:X is pressed
在按钮上加上:

on (keyPress "x") {
  trace("X is pressed");
}

但是要注意的是:检测键盘上的字母键时,字母都应为小写。如果要检测键盘中的特殊键, 中有一些专门的代码来表示它们,下面列出了一些常用的功能键的表示代码:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

<Left <Right <Up <Down <Space <Home <End <Insert <PageUp <PageDown
<Enter <Delete <Backspace <Tab <Escape

如要检测键盘上的<Left键,可以使用下面的ActionScript:
on (keyPress "<Left") {
trace("Left is pressed");
}

另外,你可以在一个按钮中加入若干个on函数,也可以在一个on函数中结合多种事件,这使 您可以为按钮定义自己熟悉常用的快捷键,如下所示:
on (release, keyPress "<Left") {
_root.myMC.prevFrame();
}
on (release, keyPress "<Right") {
_root.myMC.nextFrame();

上面的第一个语句实现单击按钮或按键盘上的左方向键,控制影片剪辑myMC回退1帧,而上面的第二个语句实现单击按钮或按键盘上的右方向键,控制影片剪辑myMC前进1帧。

第二种响应键盘的方法:利用Key对象来实现响应键盘的操作

利用按钮检测按键动作很有效,但是并不利于检测持续按下的键,所以不适合于制作某些通过键盘控制的游戏。
这时,您就需要用到Key对象。Key对象包含在动作面板的“对象”/“影片”目录下面,它由内置的一系列方法、常量和函数构成。使用Key对象可以检测某个键是否被按下,如要检测左方向键是否被按下,可以使用如下ActionScript:

  

if (Key.isDown(Key.LEFT)) {
  trace("The left arrow is down");

函数Key.isDown返回一个布尔值,当该数中的参数对应的键被按下时返回true,否则返回false。常量Key.LEFT代表键盘上的左方向键。当左方向键被按下时,该函数返回true。
Key对象中的常量代表了键盘上相应的键,下面列出了一些基本的常量:
一些功能键的表示:

Key.BACKSPACE Key.ENTER Key.PGDN
Key.CAPSLOCK Key.ESCAPE Key.RIGHT
Key.CONTROL Key.HOME Key.SHIFT
Key.DELETEKEY Key.INSERT Key.SPACE
Key.DOWN Key.LEFT Key.TAB
Key.END Key.PGUP Key.UP

以上是键盘上的功能键,那么如何表示键盘上的字母键呢?
Key对象提供了一个函数Key.getCode来实现这一功能,如下所示:

if (Key.isDown(Key.getCode("x"))) {
  trace("X is pressed");

上面脚本的意思就是,利用Key.getCode函数来告诉系统你是否按下了x键,如果按下了x键以后,函数Key.isDown则会返回true,在输出窗口就会输出X is pressed。

第三种响应键盘的方法:利用键盘侦听的方法来实现响应键盘(个人习惯用这种方法)

假设在影片剪辑的onClipEvent(enterFrame)事件处理函数中检测按键动作,而影片剪辑所在的时间轴较长,或计算机运算速度较慢,就有可能出现这种情况:即当在键盘上按下某个键时还未来得及处理onClipEvent(enterFrame)函数,那么按键动作将被忽略,这样的话,很多你想要的效果就会无法实现了。
另外,还有一个需要解决的问题就是,在某些游戏(如射击)中,我们需要按一次键就执行一次动作(发射一发子弹),即使长时间按住某个键不放也只能算作一次按键,而Key对象并不能区别是长时间按住同一个键还是快速地多次按键。
所以如果要解决这个问题,就需要用到键盘侦听的方

来源:http://www.tulaoshi.com/n/20160129/1493618.html

延伸阅读
标签: 分娩
在 孕期 的准妈妈快要到临产期了,这时就会有很多忧虑,例如,万一 难产 怎么办呢?其实难产是可以避免的哦。 一、难产 难产是指母亲的生产过程进展异常缓慢,难产对母亲及胎儿的罹病率及死亡率均提高。孕妇难产泛指在分娩过程中出现某些情况,导致婴儿本身产生问题,或因母亲骨盘腔狭窄、子宫或阴道结构异常、子宫收缩无力或...
四种方法拯救你的头发 一、洗发次数要适度,每次洗发要彻底 头发问题,必须谈的当然是洗发了。经常在各种健康网上看到指导人们该如何洗发的文章,都是一条法则适用所有人。要知道,每个人发质不同,洗发护发的方式必然不同,世间本就不存在“一药治百病”。 洗发注意事项: 1、头发特别油腻的人,可以适...
标签: FLASH flash教程
加载外部文件的进度条 (看帮助文档整理),只适合那些不愿看帮助文档的新手。我只不过加了一些注释。 为加载图像文件或 SWF 文件创建进度条 创建一个名为 loadImage.fla 的新 Flash 文档。 选择"修改""文档",在宽度文本框中键入 700,在高度文本框中键入 500,从而更改文档的尺寸。 在时间轴中选择第 1 帧,然后在...
标签: FLASH flash教程
poluoluo核心提示:Flash高级技巧教程:flash手写输入. 之前见有一些网友提到过此类问题,也有人讨论过了,大致原理就是坐标数据,然后根据点坐标去判断笔画,然后生成字符。最近无聊就尝试去试试,因为手写输入,难点就是根据数据生成笔画这,可惜我是前端的,后台数据不是太了解,所以就打算研究下现在网站上比较通用的flash手写输入。[大...
拔罐是现下最为流行的中医养生方法中的一种,不仅仅可以起到养生保健的作用,还能预防以及治疗各种病症。可能很多人都有享受过拔罐带来的健康,但对于拔罐的一些常识则不是那么清楚。今天图老师小编来跟大家聊聊拔罐最常用的四种手法。大家都知道有哪些吗? 拔罐作为最为传统的中医养生法,在生活中很常见。拔罐功效强大,但不意味着...

经验教程

468

收藏

44
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部