home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2012 April / ME_04_2012.iso / Video-Tutorial / iPhoto / media / player.swf / scripts / mx / utils / OrderedObject.as < prev    next >
Encoding:
Text File  |  2011-11-11  |  3.1 KB  |  115 lines

  1. package mx.utils
  2. {
  3.    import flash.utils.Proxy;
  4.    import flash.utils.flash_proxy;
  5.    
  6.    use namespace object_proxy;
  7.    use namespace flash_proxy;
  8.    
  9.    public dynamic class OrderedObject extends Proxy
  10.    {
  11.       object_proxy var propertyList:Array;
  12.       
  13.       private var _item:Object;
  14.       
  15.       public function OrderedObject(param1:Object = null)
  16.       {
  17.          super();
  18.          if(!param1)
  19.          {
  20.             param1 = {};
  21.          }
  22.          this._item = param1;
  23.          this.object_proxy::propertyList = [];
  24.       }
  25.       
  26.       object_proxy function getObjectProperty(param1:*) : *
  27.       {
  28.          return this.flash_proxy::getProperty(param1);
  29.       }
  30.       
  31.       object_proxy function setObjectProperty(param1:*, param2:*) : void
  32.       {
  33.          this.flash_proxy::setProperty(param1,param2);
  34.       }
  35.       
  36.       override flash_proxy function getProperty(param1:*) : *
  37.       {
  38.          var _loc2_:Object = null;
  39.          return this._item[param1];
  40.       }
  41.       
  42.       override flash_proxy function callProperty(param1:*, ... rest) : *
  43.       {
  44.          return this._item[param1].apply(this._item,rest);
  45.       }
  46.       
  47.       override flash_proxy function deleteProperty(param1:*) : Boolean
  48.       {
  49.          var _loc2_:Object = this._item[param1];
  50.          var _loc3_:* = delete this._item[param1];
  51.          var _loc4_:int = -1;
  52.          var _loc5_:int = 0;
  53.          while(_loc5_ < this.object_proxy::propertyList.length)
  54.          {
  55.             if(this.object_proxy::propertyList[_loc5_] == param1)
  56.             {
  57.                _loc4_ = _loc5_;
  58.                break;
  59.             }
  60.             _loc5_++;
  61.          }
  62.          if(_loc4_ > -1)
  63.          {
  64.             this.object_proxy::propertyList.splice(_loc4_,1);
  65.          }
  66.          return _loc3_;
  67.       }
  68.       
  69.       override flash_proxy function hasProperty(param1:*) : Boolean
  70.       {
  71.          return param1 in this._item;
  72.       }
  73.       
  74.       override flash_proxy function nextName(param1:int) : String
  75.       {
  76.          return this.object_proxy::propertyList[param1 - 1];
  77.       }
  78.       
  79.       override flash_proxy function nextNameIndex(param1:int) : int
  80.       {
  81.          if(param1 < this.object_proxy::propertyList.length)
  82.          {
  83.             return param1 + 1;
  84.          }
  85.          return 0;
  86.       }
  87.       
  88.       override flash_proxy function nextValue(param1:int) : *
  89.       {
  90.          return this._item[this.object_proxy::propertyList[param1 - 1]];
  91.       }
  92.       
  93.       override flash_proxy function setProperty(param1:*, param2:*) : void
  94.       {
  95.          var _loc4_:int = 0;
  96.          var _loc3_:* = this._item[param1];
  97.          if(_loc3_ !== param2)
  98.          {
  99.             this._item[param1] = param2;
  100.             _loc4_ = 0;
  101.             while(_loc4_ < this.object_proxy::propertyList.length)
  102.             {
  103.                if(this.object_proxy::propertyList[_loc4_] == param1)
  104.                {
  105.                   return;
  106.                }
  107.                _loc4_++;
  108.             }
  109.             this.object_proxy::propertyList.push(param1);
  110.          }
  111.       }
  112.    }
  113. }
  114.  
  115.