home *** CD-ROM | disk | FTP | other *** search
/ 600 Games / 600games.iso / Acao / kung_fu.swf / scripts / __Packages / com / KidFighting / Input.as < prev    next >
Encoding:
Text File  |  2006-06-13  |  8.5 KB  |  211 lines

  1. class com.KidFighting.Input
  2. {
  3.    static var addEventListener;
  4.    static var dispatchEvent;
  5.    static var keyTimerLast;
  6.    static var UP = 38;
  7.    static var DOWN = 40;
  8.    static var LEFT = 37;
  9.    static var RIGHT = 39;
  10.    static var INPUT_DELAY = 450;
  11.    static var A = "65";
  12.    static var S = "83";
  13.    static var P = "80";
  14.    static var M = "77";
  15.    static var keyTimer = new ds.controls.Timer();
  16.    static var keyPressedGroup = [];
  17.    static var keyBuffer = [];
  18.    static var enabled = true;
  19.    static var paused = false;
  20.    static var muted = false;
  21.    static var updateTimer = new ds.controls.Timer();
  22.    static var _evt = mx.events.EventDispatcher.initialize(com.KidFighting.Input);
  23.    static var _inited = com.KidFighting.Input.initialize();
  24.    static var owner = null;
  25.    function Input()
  26.    {
  27.    }
  28.    static function initialize()
  29.    {
  30.       Key.addListener(com.KidFighting.Input);
  31.       com.KidFighting.Input.keyPressedGroup = [];
  32.       com.KidFighting.Input.enabled = true;
  33.       com.KidFighting.Input.updateTimer.func = function()
  34.       {
  35.          com.KidFighting.Input.updateDirection();
  36.       };
  37.       com.KidFighting.Input.updateTimer.interval = 33;
  38.       com.KidFighting.Input.reset();
  39.       return true;
  40.    }
  41.    static function reset()
  42.    {
  43.       com.KidFighting.Input.keyBuffer = [];
  44.       com.KidFighting.Input.keyTimer.stop();
  45.       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;
  46.    }
  47.    static function enable()
  48.    {
  49.       com.KidFighting.Input.enabled = true;
  50.       com.KidFighting.Input.paused = false;
  51.       com.KidFighting.Input.updateTimer.start();
  52.    }
  53.    static function disable()
  54.    {
  55.       com.KidFighting.Input.enabled = false;
  56.       com.KidFighting.Input.paused = true;
  57.       com.KidFighting.Input.updateTimer.stop();
  58.    }
  59.    static function updateDirection()
  60.    {
  61.       if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.UP])
  62.       {
  63.          if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.RIGHT])
  64.          {
  65.             com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"jump",direction:"right"});
  66.          }
  67.          else if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.LEFT])
  68.          {
  69.             com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"jump",direction:"left"});
  70.          }
  71.          else
  72.          {
  73.             com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"jump",direction:""});
  74.          }
  75.       }
  76.       else if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.RIGHT])
  77.       {
  78.          if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.UP])
  79.          {
  80.             com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"jump",direction:"right"});
  81.          }
  82.          else if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.DOWN])
  83.          {
  84.             com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"down",direction:"right"});
  85.          }
  86.          else
  87.          {
  88.             com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"move",direction:"right"});
  89.          }
  90.       }
  91.       else if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.LEFT])
  92.       {
  93.          if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.UP])
  94.          {
  95.             com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"jump",direction:"left"});
  96.          }
  97.          else if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.DOWN])
  98.          {
  99.             com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"down",direction:"left"});
  100.          }
  101.          else
  102.          {
  103.             com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"move",direction:"left"});
  104.          }
  105.       }
  106.       else if(com.KidFighting.Input.keyPressedGroup[com.KidFighting.Input.DOWN])
  107.       {
  108.          com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"down",direction:""});
  109.       }
  110.    }
  111.    static function onKeyUp()
  112.    {
  113.       var _loc1_ = Key.getCode();
  114.       com.KidFighting.Input.keyPressedGroup[_loc1_] = 0;
  115.       if(!com.KidFighting.Input.enabled)
  116.       {
  117.          return undefined;
  118.       }
  119.       if(_loc1_ == com.KidFighting.Input.M)
  120.       {
  121.          com.KidFighting.Input.muted = !com.KidFighting.Input.muted;
  122.          com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"switchMute",value:com.KidFighting.Input.muted});
  123.       }
  124.       if(_loc1_ == com.KidFighting.Input.P)
  125.       {
  126.          com.KidFighting.Input.paused = !com.KidFighting.Input.paused;
  127.          com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"pauseGame",value:com.KidFighting.Input.paused});
  128.       }
  129.       updateAfterEvent();
  130.       if(com.KidFighting.Input.paused)
  131.       {
  132.          return undefined;
  133.       }
  134.       var _loc2_ = _loc1_ == com.KidFighting.Input.UP || _loc1_ == com.KidFighting.Input.DOWN || _loc1_ == com.KidFighting.Input.LEFT || _loc1_ == com.KidFighting.Input.RIGHT;
  135.       com.KidFighting.Input.dispatchEvent({activer:com.KidFighting.Input.owner,type:"updateInput",motion:"nothing",isDirection:_loc2_});
  136.    }
  137.    static function onKeyDown()
  138.    {
  139.       var _loc1_ = Key.getCode();
  140.       if(!com.KidFighting.Input.keyPressedGroup[_loc1_])
  141.       {
  142.          com.KidFighting.Input.keyPressedGroup[_loc1_] = 1;
  143.          if(!com.KidFighting.Input.enabled || com.KidFighting.Input.paused)
  144.          {
  145.             return undefined;
  146.          }
  147.          if(_loc1_ == com.KidFighting.Input.A || _loc1_ == com.KidFighting.Input.S)
  148.          {
  149.             var _loc2_ = "";
  150.             if(getTimer() - com.KidFighting.Input.keyTimerLast < com.KidFighting.Input.INPUT_DELAY)
  151.             {
  152.                _loc2_ = com.KidFighting.Input.keyBuffer.join() + "," + _loc1_;
  153.             }
  154.             com.KidFighting.Input.keyTimer.stop();
  155.             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)};
  156.             com.KidFighting.Input.keyTimer.start(function()
  157.             {
  158.                com.KidFighting.Input.keyTimer.stop();
  159.                com.KidFighting.Input.dispatchEvent(sklObj);
  160.             }
  161.             ,33);
  162.             com.KidFighting.Input.keyBuffer.length = 0;
  163.          }
  164.          else
  165.          {
  166.             if(com.KidFighting.Input.owner.side == -1)
  167.             {
  168.                if(_loc1_ == com.KidFighting.Input.LEFT)
  169.                {
  170.                   _loc1_ = com.KidFighting.Input.RIGHT;
  171.                }
  172.                else if(_loc1_ == com.KidFighting.Input.RIGHT)
  173.                {
  174.                   _loc1_ = com.KidFighting.Input.LEFT;
  175.                }
  176.             }
  177.             if(com.KidFighting.Input.keyBuffer.length == 0)
  178.             {
  179.                com.KidFighting.Input.keyTimerLast = getTimer();
  180.             }
  181.             com.KidFighting.Input.keyBuffer.push(_loc1_);
  182.          }
  183.          updateAfterEvent();
  184.       }
  185.    }
  186.    static function assignKeySet(keySet)
  187.    {
  188.       com.KidFighting.Input.UP = keySet.UP;
  189.       com.KidFighting.Input.DOWN = keySet.DOWN;
  190.       com.KidFighting.Input.LEFT = keySet.LEFT;
  191.       com.KidFighting.Input.RIGHT = keySet.RIGHT;
  192.       com.KidFighting.Input.A = keySet.PUNCH;
  193.       com.KidFighting.Input.S = keySet.KICK;
  194.       com.KidFighting.Input.P = keySet.PAUSE;
  195.       com.KidFighting.Input.M = keySet.MUTE;
  196.    }
  197.    static function onRoundInit(evtObj)
  198.    {
  199.       com.KidFighting.Input.reset();
  200.       com.KidFighting.Input.disable();
  201.    }
  202.    static function onFightStart(evtObj)
  203.    {
  204.       com.KidFighting.Input.enable();
  205.    }
  206.    static function onRoundEnd(evtObj)
  207.    {
  208.       com.KidFighting.Input.disable();
  209.    }
  210. }
  211.