·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3.0处理按键事件,多个按键按下时的响应事件,按键盘的事件(3)

时间:2013-10-30 17:02cuplayer.com
方式二 package { importflash.display.Sprite; importflash.events.Event; importflash.events.MouseEvent; importflash.events.KeyboardEvent; importflash.text.TextField; publicclassMainextendsSprite { varr

方式二

  1. package  
  2.     import flash.display.Sprite; 
  3.     import flash.events.Event; 
  4.     import flash.events.MouseEvent; 
  5.     import flash.events.KeyboardEvent; 
  6.     import flash.text.TextField; 
  7.  
  8.     public class Main extends Sprite 
  9.     { 
  10.         var role:Sprite; 
  11.         var speed:int = 5
  12.         var keyObj:Object = {}; 
  13.         var keyArr:Array = []; 
  14.         public function Main():void 
  15.         { 
  16.             role=new Sprite(); 
  17.             role.graphics.beginFill(0xff00ff); 
  18.             role.graphics.drawRect(10,-40,20,40); 
  19.             role.graphics.endFill(); 
  20.             role.x = 150
  21.             role.y = 200
  22.             addChild(role); 
  23.             stage.focus = this
  24.             keyOne(); 
  25.         } 
  26.  
  27.  
  28.  
  29.         private function keyOne() 
  30.         { 
  31.             stage.addEventListener(KeyboardEvent.KEY_DOWN,KeyDownHandler); 
  32.             stage.addEventListener(KeyboardEvent.KEY_UP,KeyUpHandler); 
  33.         } 
  34.  
  35.         private function KeyDownHandler(e:KeyboardEvent) 
  36.         { 
  37.             keyObj[e.keyCode] = true; 
  38.  
  39.             if (keyObj[32]) 
  40.             { 
  41.                 trace("space"); 
  42.                 //role.y -=  3 * speed; 
  43.             } 
  44.             if (keyObj[37]) 
  45.             { 
  46.                 trace("left"); 
  47.                 role.x -=  speed
  48.             } 
  49.             if (keyObj[38]) 
  50.             { 
  51.                 trace("down"); 
  52.                 role.y -=  speed
  53.             } 
  54.             if (keyObj[39]) 
  55.             { 
  56.                 trace("right"); 
  57.                 role.x +=  speed; 
  58.             } 
  59.  
  60.             if (keyObj[40]) 
  61.             { 
  62.                 trace("up"); 
  63.                 role.y +=  speed; 
  64.             } 
  65.  
  66.             if (keyObj[13] && keyObj[17]) 
  67.             { 
  68.                 trace("cuplayer.com提示八连杀,好无敌。我要发射了。"); 
  69.                 var txt:TextField=new TextField(); 
  70.                 txt.multiline = true
  71.                 txt.wordWrap = true
  72.                 txt.text = "cuplayer.com提示八连杀,好强大。一句就能爆菊花!"
  73.                 txt.x=int(50*Math.random()); 
  74.                 txt.y=-int(200*Math.random()); 
  75.                 while(role.numChildren>0) 
  76.                 { 
  77.                     role.removeChildAt(0); 
  78.                 } 
  79.                 role.addChild(txt); 
  80.             } 
  81.         } 
  82.  
  83.         private function KeyUpHandler(e:KeyboardEvent) 
  84.         { 
  85.             keyObj[e.keyCode] = false; 
  86.         } 
  87.  
  88.         private function keyTwo() 
  89.         { 
  90.             stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler); 
  91.             stage.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler); 
  92.             addEventListener(Event.ENTER_FRAME,enterFrameHandler); 
  93.         } 
  94.  
  95.         private function keyDownHandler(e:KeyboardEvent) 
  96.         { 
  97.             var num = keyArr.indexOf(e.keyCode); 
  98.             if (num<0
  99.             { 
  100.                 keyArr.push(e.keyCode); 
  101.             } 
  102.         } 
  103.  
  104.         private function keyUpHandler(e:KeyboardEvent) 
  105.         { 
  106.             var num = keyArr.indexOf(e.keyCode); 
  107.             if (num>=0) 
  108.             { 
  109.                 keyArr.splice(num,1); 
  110.             } 
  111.  
  112.         } 
  113.  
  114.         private function enterFrameHandler(e:Event) 
  115.         { 
  116.             trace(keyArr); 
  117.         } 
  118.     } 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器