当前位置:七道奇文章资讯设计学堂Flash设计
日期:2009-04-04 00:17:00  来源:本站整理

<b>FLASH中呼应键盘事件的四种办法</b>[Flash设计]

赞助商链接



  本文“<b>FLASH中呼应键盘事件的四种办法</b>[Flash设计]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
呼应键盘的办法作为AS中的一个重要构成部份,在目前已经越来越遍及的利用,特别是在 FLASH游戏制作中,假如贫乏了呼应键盘的办法,那是不大概的,而呼应键盘的办法主要的四种,辨别是:

1、操纵按钮举行检测
2、操纵KEY对象
3、操纵键盘侦听的办法
4、操纵影片剪辑的keyUp和keyDown事件来实现呼应键盘

只有纯熟掌握了这些办法,然后加以变通的话,就会得到很多意想不到的效果,下面我就结公道论和自己的设法扼要的介绍一下.

第一种呼应键盘的办法:操纵按钮举行检测来实现呼应键盘

在按钮的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.
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对象并不能辨别是长时间按住同一个键还是快速地多次按键.
所以假如要办理这个问题,就需求用到键盘侦听的办法.你可以利用 “侦听器(listener)”来侦听键盘上的按键行动.
要利用侦听器之前,首先需求成立它,你可以利用以下所示的号令来奉告计算机你需求侦听某个事件:

Key.addListener(_root);

Key.addListener号令将 主时间轴 或 某个影片剪辑 作为它的参数,当侦听的事件发生时,可以用这个参数指定的对象来呼应当事件.
上面的代码指定主时间轴来呼应当事件.要让主时间轴对该事件作出呼应,还需求设置一个呼应的事件处理函数,不然设置侦听器就没有什么意义了.
键盘侦听的事件处理函数有两个:onKeyUp和onKeyDown,以下所示:

Key.addListener(_root);
_root.onKeyUp = function() {
trace(Key.getAscii());
};
//代码的意思是,当按下一个键并释放后,输出窗口将输出你按下的那个键的Ascii码

当然,你也可以利用影片剪辑作为侦听键盘的对象,只需求利用影片剪辑的途径替换_root作为Key.addListener号令的参数便可以了.
比方下面代码:

Key.addListener(_root.mc);
_root.mc.onKeyUp = function() {
trace(Key.getAscii());
};

代码的意思是,当按下一个键并释放后,输出窗口将输出你按下的那个键的Ascii码,意思差不多,但是键盘侦听对象差别,一个是影片mc,一个是主时间轴.

最后给出实例源文件:下载

第四种呼应键盘的办法:操纵影片剪辑的keyUp和keyDown事件来实现呼应键盘

最后一种办法很简单被轻忽,但是也有一定的利用代价,最重要的是把概念弄清楚.影片剪辑包含两个与键盘相关的事件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码的.
假如我想在输出窗口中输出与按键相对应的字符,那怎么办?
这时刻,你可以利用String对象的fromCharCode函数将ASCII码转换成字符,如将上例的代码改成以下所示:

onClipEvent (keyDown) {
trace(String.fromCharCode(Key.getAscii()));
};
//意思就是说,当按下键盘的一个键,输出按下的这个键相对应的字符,当然除了功效键.

关于String对象的具体注释,大家可以查看行动面板的“对象”/“核心”目录下面.


  以上是“<b>FLASH中呼应键盘事件的四种办法</b>[Flash设计]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .