home *** CD-ROM | disk | FTP | other *** search
/ 600 Games / 600games.iso / Classicos / smashout.swf / scripts / __Packages / GDK / Collection.as < prev    next >
Encoding:
Text File  |  2005-11-09  |  1.7 KB  |  85 lines

  1. class GDK.Collection extends Array
  2. {
  3.    var id;
  4.    static var Collections = [];
  5.    static var created = 0;
  6.    function Collection()
  7.    {
  8.       super();
  9.       GDK.Collection.Collections[this.id = ++GDK.Collection.created] = this;
  10.    }
  11.    static function removeFromAll(obj)
  12.    {
  13.       var _loc1_ = undefined;
  14.       if(!(_loc1_ = obj.__col))
  15.       {
  16.          return undefined;
  17.       }
  18.       for(var _loc3_ in _loc1_)
  19.       {
  20.          GDK.Collection.Collections[_loc3_].removeMember(obj);
  21.       }
  22.    }
  23.    static function removeAll()
  24.    {
  25.    }
  26.    function addMember(obj)
  27.    {
  28.       if(obj.__col[this.id])
  29.       {
  30.          return false;
  31.       }
  32.       this.push(obj);
  33.       if(!obj.__col)
  34.       {
  35.          obj.__col = {count:0};
  36.       }
  37.       obj.__col[this.id] = true;
  38.       obj.__col.count = obj.__col.count + 1;
  39.       return true;
  40.    }
  41.    function removeMember(obj)
  42.    {
  43.       if(!obj.__col[this.id])
  44.       {
  45.          return false;
  46.       }
  47.       var _loc2_ = this.length;
  48.       while((_loc2_ = _loc2_ - 1) > -1)
  49.       {
  50.          if(this[_loc2_] == obj)
  51.          {
  52.             this.splice(_loc2_,1);
  53.             break;
  54.          }
  55.       }
  56.       if(!--obj.__col.count)
  57.       {
  58.          delete obj.__col;
  59.       }
  60.       else
  61.       {
  62.          delete obj.__col[this.id];
  63.       }
  64.       delete this[this.length];
  65.       return true;
  66.    }
  67.    function update(elapsed)
  68.    {
  69.       var _loc2_ = this.length;
  70.       while((_loc2_ = _loc2_ - 1) > -1)
  71.       {
  72.          this[_loc2_].update(elapsed);
  73.       }
  74.    }
  75.    function send(sID)
  76.    {
  77.       var _loc4_ = arguments.splice(1);
  78.       var _loc3_ = this.length;
  79.       while((_loc3_ = _loc3_ - 1) > -1)
  80.       {
  81.          this[_loc3_][sID].apply(this[_loc3_],_loc4_);
  82.       }
  83.    }
  84. }
  85.