package CYPL.Game{
import flash.display.InteractiveObject; import flash.events.KeyboardEvent; import flash.events.Event; public class Key { private static var keyObj:Object; private static var io:InteractiveObject; private static var keyTestHandler:Function; public static function init(io:InteractiveObject,keyTestHandler:Function):void { Key.io=io; Key.keyTestHandler=keyTestHandler; keyObj=new Object ; io.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler); io.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler); } public static function isDown(key:int):Boolean { return !!keyObj[key]; } private static function keyDownHandler(e:KeyboardEvent):void { keyObj[e.keyCode]=true; io.addEventListener(Event.ENTER_FRAME,keyTestHandler); } private static function keyUpHandler(e:KeyboardEvent):void { delete keyObj[e.keyCode]; keyObjHasProperty()?removeKeyTestHandler():null; } private static function keyObjHasProperty():Boolean { for each (var j:Boolean in keyObj) { if (j) { return false; } } return true; } private static function removeKeyTestHandler():void { io.removeEventListener(Event.ENTER_FRAME,keyTestHandler); } public static function get KeyObj():Object { return Key.keyObj; } } } |
import CYPL.Game.Key; var box:Sprite; with (box=Sprite(addChild(new Sprite))) { graphics.beginFill(0xff0000); graphics.drawRect(100,100,100,100); } Key.init(stage,keyTestHandler); function keyTestHandler(e:Event) { if (Key.isDown(Keyboard.LEFT)) { box.x-=5; } if (Key.isDown(Keyboard.RIGHT)) { box.x+=5; } if (Key.isDown(Keyboard.DOWN)) { box.y+=5; } if (Key.isDown(Keyboard.UP)) { box.y-=5; } } |
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |