home *** CD-ROM | disk | FTP | other *** search
/ Champak 50 / Volume 50 - JOGO DISK .iso / Games / mallcrawl.swf / scripts / __Packages / mx / events / UIEventDispatcher.as < prev   
Encoding:
Text File  |  2007-09-28  |  4.0 KB  |  120 lines

  1. class mx.events.UIEventDispatcher extends mx.events.EventDispatcher
  2. {
  3.    var owner;
  4.    var __sentLoadEvent;
  5.    var __origAddEventListener;
  6.    static var keyEvents = {keyDown:1,keyUp:1};
  7.    static var loadEvents = {load:1,unload:1};
  8.    static var lowLevelEvents = {keyEvents:["addKeyEvents","removeKeyEvents"],loadEvents:["addLoadEvents","removeLoadEvents"]};
  9.    static var _fEventDispatcher = undefined;
  10.    function UIEventDispatcher()
  11.    {
  12.       super();
  13.    }
  14.    static function addKeyEvents(obj)
  15.    {
  16.       if(obj.keyHandler == undefined)
  17.       {
  18.          var _loc0_ = null;
  19.          var _loc1_ = obj.keyHandler = new Object();
  20.          _loc1_.owner = obj;
  21.          _loc1_.onKeyDown = mx.events.UIEventDispatcher._fEventDispatcher.onKeyDown;
  22.          _loc1_.onKeyUp = mx.events.UIEventDispatcher._fEventDispatcher.onKeyUp;
  23.       }
  24.       Key.addListener(obj.keyHandler);
  25.    }
  26.    static function removeKeyEvents(obj)
  27.    {
  28.       Key.removeListener(obj.keyHandler);
  29.    }
  30.    static function addLoadEvents(obj)
  31.    {
  32.       if(obj.onLoad == undefined)
  33.       {
  34.          obj.onLoad = mx.events.UIEventDispatcher._fEventDispatcher.onLoad;
  35.          obj.onUnload = mx.events.UIEventDispatcher._fEventDispatcher.onUnload;
  36.          if(obj.getBytesTotal() == obj.getBytesLoaded())
  37.          {
  38.             obj.doLater(obj,"onLoad");
  39.          }
  40.       }
  41.    }
  42.    static function removeLoadEvents(obj)
  43.    {
  44.       delete obj.onLoad;
  45.       delete obj.onUnload;
  46.    }
  47.    static function initialize(obj)
  48.    {
  49.       if(mx.events.UIEventDispatcher._fEventDispatcher == undefined)
  50.       {
  51.          mx.events.UIEventDispatcher._fEventDispatcher = new mx.events.UIEventDispatcher();
  52.       }
  53.       obj.addEventListener = mx.events.UIEventDispatcher._fEventDispatcher.__addEventListener;
  54.       obj.__origAddEventListener = mx.events.UIEventDispatcher._fEventDispatcher.addEventListener;
  55.       obj.removeEventListener = mx.events.UIEventDispatcher._fEventDispatcher.removeEventListener;
  56.       obj.dispatchEvent = mx.events.UIEventDispatcher._fEventDispatcher.dispatchEvent;
  57.       obj.dispatchQueue = mx.events.UIEventDispatcher._fEventDispatcher.dispatchQueue;
  58.    }
  59.    function dispatchEvent(eventObj)
  60.    {
  61.       if(eventObj.target == undefined)
  62.       {
  63.          eventObj.target = this;
  64.       }
  65.       this[eventObj.type + "Handler"](eventObj);
  66.       this.dispatchQueue(mx.events.EventDispatcher,eventObj);
  67.       this.dispatchQueue(this,eventObj);
  68.    }
  69.    function onKeyDown(Void)
  70.    {
  71.       this.owner.dispatchEvent({type:"keyDown",code:Key.getCode(),ascii:Key.getAscii(),shiftKey:Key.isDown(16),ctrlKey:Key.isDown(17)});
  72.    }
  73.    function onKeyUp(Void)
  74.    {
  75.       this.owner.dispatchEvent({type:"keyUp",code:Key.getCode(),ascii:Key.getAscii(),shiftKey:Key.isDown(16),ctrlKey:Key.isDown(17)});
  76.    }
  77.    function onLoad(Void)
  78.    {
  79.       if(this.__sentLoadEvent != true)
  80.       {
  81.          this.dispatchEvent({type:"load"});
  82.       }
  83.       this.__sentLoadEvent = true;
  84.    }
  85.    function onUnload(Void)
  86.    {
  87.       this.dispatchEvent({type:"unload"});
  88.    }
  89.    function __addEventListener(event, handler)
  90.    {
  91.       this.__origAddEventListener(event,handler);
  92.       var _loc3_ = mx.events.UIEventDispatcher.lowLevelEvents;
  93.       for(var _loc5_ in _loc3_)
  94.       {
  95.          if(mx.events.UIEventDispatcher[_loc5_][event] != undefined)
  96.          {
  97.             var _loc2_ = _loc3_[_loc5_][0];
  98.             mx.events.UIEventDispatcher[_loc2_](this);
  99.          }
  100.       }
  101.    }
  102.    function removeEventListener(event, handler)
  103.    {
  104.       var _loc6_ = "__q_" + event;
  105.       mx.events.EventDispatcher._removeEventListener(this[_loc6_],event,handler);
  106.       if(this[_loc6_].length == 0)
  107.       {
  108.          var _loc2_ = mx.events.UIEventDispatcher.lowLevelEvents;
  109.          for(var _loc5_ in _loc2_)
  110.          {
  111.             if(mx.events.UIEventDispatcher[_loc5_][event] != undefined)
  112.             {
  113.                var _loc3_ = _loc2_[_loc5_][1];
  114.                mx.events.UIEventDispatcher[_loc2_[_loc5_][1]](this);
  115.             }
  116.          }
  117.       }
  118.    }
  119. }
  120.