[AS3]as3.0处理按键事件,多个按键按下时的响应事件,按键盘的事件(3)
方式二 package { importflash.display.Sprite; importflash.events.Event; importflash.events.MouseEvent; importflash.events.KeyboardEvent; importflash.text.TextField; publicclassMainextendsSprite { varr
方式二
- package
- {
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.MouseEvent;
- import flash.events.KeyboardEvent;
- import flash.text.TextField;
- public class Main extends Sprite
- {
- var role:Sprite;
- var speed:int = 5;
- var keyObj:Object = {};
- var keyArr:Array = [];
- public function Main():void
- {
- role=new Sprite();
- role.graphics.beginFill(0xff00ff);
- role.graphics.drawRect(10,-40,20,40);
- role.graphics.endFill();
- role.x = 150;
- role.y = 200;
- addChild(role);
- stage.focus = this;
- keyOne();
- }
- private function keyOne()
- {
- stage.addEventListener(KeyboardEvent.KEY_DOWN,KeyDownHandler);
- stage.addEventListener(KeyboardEvent.KEY_UP,KeyUpHandler);
- }
- private function KeyDownHandler(e:KeyboardEvent)
- {
- keyObj[e.keyCode] = true;
- if (keyObj[32])
- {
- trace("space");
- //role.y -= 3 * speed;
- }
- if (keyObj[37])
- {
- trace("left");
- role.x -= speed;
- }
- if (keyObj[38])
- {
- trace("down");
- role.y -= speed;
- }
- if (keyObj[39])
- {
- trace("right");
- role.x += speed;
- }
- if (keyObj[40])
- {
- trace("up");
- role.y += speed;
- }
- if (keyObj[13] && keyObj[17])
- {
- trace("cuplayer.com提示八连杀,好无敌。我要发射了。");
- var txt:TextField=new TextField();
- txt.multiline = true;
- txt.wordWrap = true;
- txt.text = "cuplayer.com提示八连杀,好强大。一句就能爆菊花!";
- txt.x=int(50*Math.random());
- txt.y=-int(200*Math.random());
- while(role.numChildren>0)
- {
- role.removeChildAt(0);
- }
- role.addChild(txt);
- }
- }
- private function KeyUpHandler(e:KeyboardEvent)
- {
- keyObj[e.keyCode] = false;
- }
- private function keyTwo()
- {
- stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
- stage.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler);
- addEventListener(Event.ENTER_FRAME,enterFrameHandler);
- }
- private function keyDownHandler(e:KeyboardEvent)
- {
- var num = keyArr.indexOf(e.keyCode);
- if (num<0)
- {
- keyArr.push(e.keyCode);
- }
- }
- private function keyUpHandler(e:KeyboardEvent)
- {
- var num = keyArr.indexOf(e.keyCode);
- if (num>=0)
- {
- keyArr.splice(num,1);
- }
- }
- private function enterFrameHandler(e:Event)
- {
- trace(keyArr);
- }
- }
- }
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...