第三种响应键盘的方法:利用键盘侦听的方法来实现响应键盘(个人习惯用这种方法)
假设在影片剪辑的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,一个是主时间轴。
最后给出实例源文件:下载
出处:闪客帝国
责任编辑:qhwa
上一页 利用Key对象来实现响应键盘的操作 下一页 利用影片剪辑的keyUp和keyDown事件
◎进入论坛Flash专栏版块参加讨论
|