home *** CD-ROM | disk | FTP | other *** search
/ Mobiclic 150 / MOBICLIC150.ISO / pc / DATA / DSS150 / DSS150_04 / DSS150_04.swf / scripts / dss150_04 / KeyDetecter.as < prev    next >
Text File  |  2012-12-19  |  2KB  |  88 lines

  1. package dss150_04
  2. {
  3.    import com.milanpresse.engineaddons.facades.GameEngine;
  4.    import com.milanpresse.engineaddons.gamesprotos.Actor;
  5.    import flash.events.KeyboardEvent;
  6.    
  7.    public class KeyDetecter extends Actor
  8.    {
  9.        
  10.       
  11.       protected var _enabled:Boolean = false;
  12.       
  13.       public var actions:Object;
  14.       
  15.       public var keyToAction:Object;
  16.       
  17.       public function KeyDetecter(game:GameEngine, params:*)
  18.       {
  19.          this.actions = {
  20.             "left":false,
  21.             "up":false,
  22.             "right":false,
  23.             "down":false
  24.          };
  25.          this.keyToAction = {
  26.             37:"left",
  27.             38:"up",
  28.             39:"right",
  29.             40:"down"
  30.          };
  31.          super(game,null,params);
  32.          this.stage = params.stage;
  33.       }
  34.       
  35.       public static function create(game:GameEngine, params:*) : KeyDetecter
  36.       {
  37.          return new KeyDetecter(game,params);
  38.       }
  39.       
  40.       public function actionReset() : void
  41.       {
  42.          this.actions = {
  43.             "left":false,
  44.             "up":false,
  45.             "right":false,
  46.             "down":false
  47.          };
  48.       }
  49.       
  50.       private function keyDownHandler(event:KeyboardEvent) : void
  51.       {
  52.          this.actions[this.keyToAction[event.keyCode]] = true;
  53.       }
  54.       
  55.       private function keyUpHandler(event:KeyboardEvent) : void
  56.       {
  57.          this.actions[this.keyToAction[event.keyCode]] = false;
  58.       }
  59.       
  60.       public function set enabled(value:Boolean) : void
  61.       {
  62.          if(value == this._enabled)
  63.          {
  64.             return;
  65.          }
  66.          this._enabled = value;
  67.          if(this._enabled)
  68.          {
  69.             stage.focus = stage;
  70.             stage.addEventListener(KeyboardEvent.KEY_DOWN,this.keyDownHandler);
  71.             stage.addEventListener(KeyboardEvent.KEY_UP,this.keyUpHandler);
  72.          }
  73.          else
  74.          {
  75.             stage.removeEventListener(KeyboardEvent.KEY_DOWN,this.keyDownHandler);
  76.             stage.removeEventListener(KeyboardEvent.KEY_UP,this.keyUpHandler);
  77.          }
  78.       }
  79.       
  80.       override protected function _destroy() : void
  81.       {
  82.          stage.removeEventListener(KeyboardEvent.KEY_DOWN,this.keyDownHandler);
  83.          stage.removeEventListener(KeyboardEvent.KEY_UP,this.keyUpHandler);
  84.          super._destroy();
  85.       }
  86.    }
  87. }
  88.