|
首页 | 名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
这些是以前整理的,现在发上来,希望对新手有所帮助……响应键盘的方式作为AS中的一个重要组成部分,在如今已经越来越广泛使用,尤其是在 FLASH游戏制作中,假如缺少了响应键盘的方式,那是不可能的,而响应键盘的方式也就是 主要的四种,分别是: 1、利用按钮进行检测 只有纯熟把握了这些方式,然后加以变通的话,就会得到很多意想不到的效果, 下面我就结合理论和自己的想法简要的介绍一下。 第一种响应键盘的方式:利用按钮进行检测来实现响应键盘在按钮的on事件处理函数中不但可以对鼠标事件作出响应,而且可以对键盘事件作出响应。 如在按钮的动作面板中加入如下所示的代码,在敲击键盘上的X键时输出窗口中将提示: X is pressed on (keyPress "x") { trace("X is pressed"); } 但是要注重的是:检测键盘上的字母键时,字母都应为小写。假如要检测键盘中的特别键, 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对象包含在动作面板的“对象”/“影片”目录下面,它由Flash内置的一系列方式、常量和函数构成。使用Key对象可以检测某个键是否被按下,如要检测左方向键是否被按下,可以使用如下ActionScript: if (Key.isDown(Key.LEFT)) { trace("The left arrow is down"); } 函数Key.isDown返回一个布尔值,当该数中的参数对应的键被按下时返回true,否则返回false。常量Key.LEFT代表键盘上的左方向键。当左方向键被按下时,该函数返回true。 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对象并不能区别是长时间按住同一个键还是迅速地多次按键。 所以假如要解决这个问题,就需要用到键盘侦听的方式。你可以使用 “侦听器(listener)”来侦听键盘上的按键动作。 要使用侦听器之前,首先需要创建它,你可以使用如下所示的命令来告诉计算机你需要侦听某个事件: Key.addListener(_root); Key.addListener命令将 主时间轴 或 某个影片剪辑 作为它的参数,当侦听的事件发生时,可以用这个参数指定的对象来响应该事件。 上面的代码指定主时间轴来响应该事件。要让主时间轴对该事件作出响应,还需要设置一个相应的事件处理函数,否则设置侦听器就没有什么意义了。 键盘侦听的事件处理函数有两个:onKeyUp和onKeyDown,如下所示: Key.addListener(_root); _root.onKeyUp = function() { trace(Key.getAscii()); }; //代码的意思是,当按下一个键并释放后,输出窗口将输出你按下的那个键的Ascii码 Key.addListener(_root.mc); _root.mc.onKeyUp = function() { trace(Key.getAscii()); }; //代码的意思是,当按下一个键并释放后,输出窗口将输出你按下的那个键的Ascii码,意思差不多,但是键盘侦听对象不同,一个是影片mc,一个是主时间轴。 最后给出实例原文件:点击这里下载源文件 方式四 第四种响应键盘的方式:利用影片剪辑的keyUp和keyDown事件来实现响应键盘 最后一种方式很轻易被忽视,但是也有一定的应用价值,最重要的是把概念弄清晰。 onClipEvent (keyDown) { trace(Key.getAscii()); } //当按下键盘上的一个键的时候,输出窗口将输出按下的这个键的Ascii码值。 函数Key.getAscii表示返回与按键相对应的ASCII码,其中 ASCII码是一个整数,键盘上的每个字符对应一个ASCII码,如字母A对应的ASCII码为65,B对应的ASCII码为66,a对应的ASCII码为97, b对应的ASCII码为98,+ 对应的ASCII码为43等。需要注重的是:只有字符键才有ASCII码,键盘上的功能键是没有ASCII码的。 假如我想在输出窗口中输出与按键相对应的字符,那怎么办? onClipEvent (keyDown) { trace(String.fromCharCode(Key.getAscii())); }; //意思就是说,当按下键盘的一个键,输出按下的这个键相对应的字符,当然除了功能键。 关于String对象的具体解释,大家可以查看动作面板的“对象”/“核心”目录下面。 最后给出实例原文件:点击这里下载源文件 i8n6x7> 返回类别: Flash教程 上一教程: Flash MX 2004新特性实例学习五 下一教程: 经典Flash源文件集锦-导航篇_韩式导航 您可以阅读与"Flash 中响应键盘的一般方式"相关的教程: · FLASH中响应键盘事件的四种方式 · 浅谈Flash发布设置的一些技巧 · Flash制作的一种凸放大镜效果 · Flash中运动规律的一些基本概念 · 解决MP3不能导入Flash的一种方式 |
快精灵印艺坊 版权所有 | 首页会员中心在线印刷在线编辑付款方式索取样品设计指南连锁门店 |