home *** CD-ROM | disk | FTP | other *** search
/ FCE Gold Plus / GOLD.iso / pc / fscommand / linux / main.swf / scripts / __Packages / com / event / observable.as
Encoding:
Text File  |  2007-09-06  |  1.8 KB  |  69 lines

  1. class com.event.observable
  2. {
  3.    var length;
  4.    var pop;
  5.    function observable()
  6.    {
  7.       var _loc3_ = this;
  8.       _loc3_.c_arrListeners = new Array();
  9.       Array.prototype.popAt = function(_iNum)
  10.       {
  11.          var _loc3_ = new Array();
  12.          var _loc2_ = this.length;
  13.          if(_iNum < _loc2_)
  14.          {
  15.             var _loc1_ = 0;
  16.             while(_loc1_ < _loc2_)
  17.             {
  18.                if(_loc1_ != _iNum)
  19.                {
  20.                   _loc3_.push(this[_loc1_]);
  21.                }
  22.                _loc1_ = _loc1_ + 1;
  23.             }
  24.             _loc1_ = 0;
  25.             while(_loc1_ < _loc2_)
  26.             {
  27.                this[_loc1_] = _loc3_[_loc1_];
  28.                _loc1_ = _loc1_ + 1;
  29.             }
  30.             this.pop();
  31.          }
  32.       };
  33.    }
  34.    function addListener(_objListener)
  35.    {
  36.       var _loc1_ = this;
  37.       var _loc2_ = _objListener;
  38.       _loc1_.removeListener(_loc2_);
  39.       _loc2_._name = new String("ID" + _loc1_.c_iNameCounter++);
  40.       _loc1_.c_arrListeners.push(_loc2_);
  41.    }
  42.    function removeListener(_objListener)
  43.    {
  44.       var _loc2_ = this;
  45.       var _loc3_ = _objListener;
  46.       var _loc1_ = 0;
  47.       while(_loc1_ < _loc2_.c_arrListeners.length)
  48.       {
  49.          if(_loc3_._name == _loc2_.c_arrListeners[_loc1_]._name)
  50.          {
  51.             _loc2_.c_arrListeners.popAt(_loc1_);
  52.             break;
  53.          }
  54.          _loc1_ = _loc1_ + 1;
  55.       }
  56.    }
  57.    function broadcastEvent(_strFunction, _objValue)
  58.    {
  59.       var _loc2_ = this;
  60.       var _loc3_ = _strFunction;
  61.       var _loc1_ = 0;
  62.       while(_loc1_ < _loc2_.c_arrListeners.length)
  63.       {
  64.          _loc2_.c_arrListeners[_loc1_][_loc3_].call(_loc2_.c_arrListeners[_loc1_],_objValue,_loc2_);
  65.          _loc1_ = _loc1_ + 1;
  66.       }
  67.    }
  68. }
  69.