home *** CD-ROM | disk | FTP | other *** search
Wrap
class com.KidFighting.Input { static var addEventListener; static var dispatchEvent; static var keyTimerLast; static var UP = 38; static var DOWN = 40; static var LEFT = 37; static var RIGHT = 39; static var INPUT_DELAY = 450; static var A = "65"; static var S = "83"; static var P = "80"; static var M = "77"; static var keyTimer = new ds.controls.Timer(); static var keyPressedGroup = []; static var keyBuffer = []; static var enabled = true; static var paused = false; static var muted = false; static var updateTimer = new ds.controls.Timer(); static var _evt = mx.events.EventDispatcher.initialize(com.KidFighting.Input); static var _inited = com.KidFighting.Input.initialize(); static var owner = null; function Input() { } static function initialize() { Key.addListener(com.KidFighting.Input); com.KidFighting.Input.keyPressedGroup = []; com.KidFighting.Input.enabled = true; com.KidFighting.Input.updateTimer.func = function() { com.KidFighting.Input.updateDirection(); }; com.KidFighting.Input.updateTimer.interval = 33; com.KidFighting.Input.reset(); return true; } static function reset() { com.KidFighting.Input.keyBuffer = []; com.KidFighting.Input.keyTimer.stop(); com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.A] = com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.S] = com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.P] = com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.UP] = com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.DOWN] = com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.RIGHT] = com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.LEFT] = 0; } static function enable() { com.KidFighting.Input.enabled = true; com.KidFighting.Input.paused = false; com.KidFighting.Input.updateTimer.start(); } static function disable() { com.KidFighting.Input.enabled = false; com.KidFighting.Input.paused = true; com.KidFighting.Input.updateTimer.stop(); } static function updateDirection() { if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.UP]) { if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.RIGHT]) { com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"jump",direction:"right"}); } else if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.LEFT]) { com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"jump",direction:"left"}); } else { com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"jump",direction:""}); } } else if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.RIGHT]) { if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.UP]) { com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"jump",direction:"right"}); } else if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.DOWN]) { com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"down",direction:"right"}); } else { com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"move",direction:"right"}); } } else if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.LEFT]) { if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.UP]) { com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"jump",direction:"left"}); } else if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.DOWN]) { com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"down",direction:"left"}); } else { com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"move",direction:"left"}); } } else if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.DOWN]) { com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"down",direction:""}); } } static function onKeyUp() { var _loc1_ = Key.getCode(); com.KidFighting.Input.keyPressedGroup[_loc1_] = 0; if(!com.KidFighting.Input.enabled) { return undefined; } if(_loc1_ == com.KidFighting.Input.M) { com.KidFighting.Input.muted = !com.KidFighting.Input.muted; com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"switchMute",value:com.KidFighting.Input.muted}); } if(_loc1_ == com.KidFighting.Input.P) { com.KidFighting.Input.paused = !com.KidFighting.Input.paused; com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"pauseGame",value:com.KidFighting.Input.paused}); } updateAfterEvent(); if(com.KidFighting.Input.paused) { return undefined; } var _loc2_ = _loc1_ == com.KidFighting.Input.UP || _loc1_ == com.KidFighting.Input.DOWN || _loc1_ == com.KidFighting.Input.LEFT || _loc1_ == com.KidFighting.Input.RIGHT; com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"nothing",isDirection:_loc2_}); } static function onKeyDown() { var _loc1_ = Key.getCode(); if(!com.KidFighting.Input.keyPressedGroup[_loc1_]) { com.KidFighting.Input.keyPressedGroup[_loc1_] = 1; if(!com.KidFighting.Input.enabled || com.KidFighting.Input.paused) { return undefined; } if(_loc1_ == com.KidFighting.Input.A || _loc1_ == com.KidFighting.Input.S) { var _loc2_ = ""; if(getTimer() - com.KidFighting.Input.keyTimerLast < com.KidFighting.Input.INPUT_DELAY) { _loc2_ = com.KidFighting.Input.keyBuffer.join() + "," + _loc1_; } com.KidFighting.Input.keyTimer.stop(); var sklObj = {activer:com.KidFighting.Input.owner,type:"updateInput",motion:"skill",skillKeys:_loc2_,isPunch:Key.isDown(com.KidFighting.Input.A),isKick:Key.isDown(com.KidFighting.Input.S)}; com.KidFighting.Input.keyTimer.start(function() { com.KidFighting.Input.keyTimer.stop(); com.KidFighting.Input.dispatchEvent(sklObj); } ,33); com.KidFighting.Input.keyBuffer.length = 0; } else { if(com.KidFighting.Input.owner.side == -1) { if(_loc1_ == com.KidFighting.Input.LEFT) { _loc1_ = com.KidFighting.Input.RIGHT; } else if(_loc1_ == com.KidFighting.Input.RIGHT) { _loc1_ = com.KidFighting.Input.LEFT; } } if(com.KidFighting.Input.keyBuffer.length == 0) { com.KidFighting.Input.keyTimerLast = getTimer(); } com.KidFighting.Input.keyBuffer.push(_loc1_); } updateAfterEvent(); } } static function assignKeySet(keySet) { com.KidFighting.Input.UP = keySet.UP; com.KidFighting.Input.DOWN = keySet.DOWN; com.KidFighting.Input.LEFT = keySet.LEFT; com.KidFighting.Input.RIGHT = keySet.RIGHT; com.KidFighting.Input.A = keySet.PUNCH; com.KidFighting.Input.S = keySet.KICK; com.KidFighting.Input.P = keySet.PAUSE; com.KidFighting.Input.M = keySet.MUTE; } static function onRoundInit(evtObj) { com.KidFighting.Input.reset(); com.KidFighting.Input.disable(); } static function onFightStart(evtObj) { com.KidFighting.Input.enable(); } static function onRoundEnd(evtObj) { com.KidFighting.Input.disable(); } }