home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / mx / effects / CompositeEffect.as < prev    next >
Encoding:
Text File  |  2010-06-23  |  7.9 KB  |  257 lines

  1. package mx.effects
  2. {
  3.    import mx.core.mx_internal;
  4.    import mx.effects.effectClasses.CompositeEffectInstance;
  5.    import mx.effects.effectClasses.PropertyChanges;
  6.    
  7.    use namespace mx_internal;
  8.    
  9.    public class CompositeEffect extends Effect
  10.    {
  11.       mx_internal static const VERSION:String = "3.5.0.12683";
  12.       
  13.       private var _affectedProperties:Array;
  14.       
  15.       private var childTargets:Array;
  16.       
  17.       public var children:Array = [];
  18.       
  19.       public function CompositeEffect(param1:Object = null)
  20.       {
  21.          super(param1);
  22.          instanceClass = CompositeEffectInstance;
  23.       }
  24.       
  25.       override public function createInstances(param1:Array = null) : Array
  26.       {
  27.          if(!param1)
  28.          {
  29.             param1 = this.targets;
  30.          }
  31.          childTargets = param1;
  32.          var _loc2_:IEffectInstance = createInstance();
  33.          childTargets = null;
  34.          return !!_loc2_ ? [_loc2_] : [];
  35.       }
  36.       
  37.       override protected function initInstance(param1:IEffectInstance) : void
  38.       {
  39.          var _loc4_:int = 0;
  40.          var _loc5_:int = 0;
  41.          var _loc6_:Effect = null;
  42.          super.initInstance(param1);
  43.          var _loc2_:CompositeEffectInstance = CompositeEffectInstance(param1);
  44.          var _loc3_:Object = childTargets;
  45.          if(!(_loc3_ is Array))
  46.          {
  47.             _loc3_ = [_loc3_];
  48.          }
  49.          if(children)
  50.          {
  51.             _loc4_ = int(children.length);
  52.             _loc5_ = 0;
  53.             while(_loc5_ < _loc4_)
  54.             {
  55.                _loc6_ = children[_loc5_];
  56.                if(mx_internal::propertyChangesArray != null)
  57.                {
  58.                   _loc6_.mx_internal::propertyChangesArray = mx_internal::propertyChangesArray;
  59.                }
  60.                if(_loc6_.mx_internal::filterObject == null && Boolean(mx_internal::filterObject))
  61.                {
  62.                   _loc6_.mx_internal::filterObject = mx_internal::filterObject;
  63.                }
  64.                if(effectTargetHost)
  65.                {
  66.                   _loc6_.effectTargetHost = effectTargetHost;
  67.                }
  68.                if(_loc6_.targets.length == 0)
  69.                {
  70.                   _loc2_.addChildSet(children[_loc5_].createInstances(_loc3_));
  71.                }
  72.                else
  73.                {
  74.                   _loc2_.addChildSet(children[_loc5_].createInstances(_loc6_.targets));
  75.                }
  76.                _loc5_++;
  77.             }
  78.          }
  79.       }
  80.       
  81.       override mx_internal function captureValues(param1:Array, param2:Boolean) : Array
  82.       {
  83.          var _loc5_:Effect = null;
  84.          var _loc3_:int = int(children.length);
  85.          var _loc4_:int = 0;
  86.          while(_loc4_ < _loc3_)
  87.          {
  88.             _loc5_ = children[_loc4_];
  89.             param1 = _loc5_.mx_internal::captureValues(param1,param2);
  90.             _loc4_++;
  91.          }
  92.          return param1;
  93.       }
  94.       
  95.       public function addChild(param1:IEffect) : void
  96.       {
  97.          children.push(param1);
  98.          _affectedProperties = null;
  99.       }
  100.       
  101.       override mx_internal function applyStartValues(param1:Array, param2:Array) : void
  102.       {
  103.          var _loc5_:Effect = null;
  104.          var _loc6_:Array = null;
  105.          var _loc3_:int = int(children.length);
  106.          var _loc4_:int = 0;
  107.          while(_loc4_ < _loc3_)
  108.          {
  109.             _loc5_ = children[_loc4_];
  110.             _loc6_ = _loc5_.targets.length > 0 ? _loc5_.targets : param2;
  111.             if(_loc5_.mx_internal::filterObject == null && Boolean(mx_internal::filterObject))
  112.             {
  113.                _loc5_.mx_internal::filterObject = mx_internal::filterObject;
  114.             }
  115.             _loc5_.mx_internal::applyStartValues(param1,_loc6_);
  116.             _loc4_++;
  117.          }
  118.       }
  119.       
  120.       override public function createInstance(param1:Object = null) : IEffectInstance
  121.       {
  122.          if(!childTargets)
  123.          {
  124.             childTargets = [param1];
  125.          }
  126.          var _loc2_:IEffectInstance = super.createInstance(param1);
  127.          childTargets = null;
  128.          return _loc2_;
  129.       }
  130.       
  131.       override protected function filterInstance(param1:Array, param2:Object) : Boolean
  132.       {
  133.          var _loc3_:Array = null;
  134.          var _loc4_:int = 0;
  135.          var _loc5_:int = 0;
  136.          if(mx_internal::filterObject)
  137.          {
  138.             _loc3_ = targets;
  139.             if(_loc3_.length == 0)
  140.             {
  141.                _loc3_ = childTargets;
  142.             }
  143.             _loc4_ = int(_loc3_.length);
  144.             _loc5_ = 0;
  145.             while(_loc5_ < _loc4_)
  146.             {
  147.                if(mx_internal::filterObject.filterInstance(param1,effectTargetHost,_loc3_[_loc5_]))
  148.                {
  149.                   return true;
  150.                }
  151.                _loc5_++;
  152.             }
  153.             return false;
  154.          }
  155.          return true;
  156.       }
  157.       
  158.       override public function captureStartValues() : void
  159.       {
  160.          var _loc1_:Array = getChildrenTargets();
  161.          mx_internal::propertyChangesArray = [];
  162.          var _loc2_:int = int(_loc1_.length);
  163.          var _loc3_:int = 0;
  164.          while(_loc3_ < _loc2_)
  165.          {
  166.             mx_internal::propertyChangesArray.push(new PropertyChanges(_loc1_[_loc3_]));
  167.             _loc3_++;
  168.          }
  169.          mx_internal::propertyChangesArray = mx_internal::captureValues(mx_internal::propertyChangesArray,true);
  170.          endValuesCaptured = false;
  171.       }
  172.       
  173.       private function getChildrenTargets() : Array
  174.       {
  175.          var _loc3_:Array = null;
  176.          var _loc4_:Effect = null;
  177.          var _loc5_:int = 0;
  178.          var _loc6_:int = 0;
  179.          var _loc7_:int = 0;
  180.          var _loc8_:int = 0;
  181.          var _loc9_:String = null;
  182.          var _loc1_:Array = [];
  183.          var _loc2_:Object = {};
  184.          _loc5_ = int(children.length);
  185.          _loc6_ = 0;
  186.          while(_loc6_ < _loc5_)
  187.          {
  188.             _loc4_ = children[_loc6_];
  189.             if(_loc4_ is CompositeEffect)
  190.             {
  191.                _loc3_ = CompositeEffect(_loc4_).getChildrenTargets();
  192.                _loc7_ = int(_loc3_.length);
  193.                _loc8_ = 0;
  194.                while(_loc8_ < _loc7_)
  195.                {
  196.                   if(_loc3_[_loc8_] != null)
  197.                   {
  198.                      _loc2_[_loc3_[_loc8_].toString()] = _loc3_[_loc8_];
  199.                   }
  200.                   _loc8_++;
  201.                }
  202.             }
  203.             else if(_loc4_.targets != null)
  204.             {
  205.                _loc7_ = int(_loc4_.targets.length);
  206.                _loc8_ = 0;
  207.                while(_loc8_ < _loc7_)
  208.                {
  209.                   if(_loc4_.targets[_loc8_] != null)
  210.                   {
  211.                      _loc2_[_loc4_.targets[_loc8_].toString()] = _loc4_.targets[_loc8_];
  212.                   }
  213.                   _loc8_++;
  214.                }
  215.             }
  216.             _loc6_++;
  217.          }
  218.          _loc5_ = int(targets.length);
  219.          _loc6_ = 0;
  220.          while(_loc6_ < _loc5_)
  221.          {
  222.             if(targets[_loc6_] != null)
  223.             {
  224.                _loc2_[targets[_loc6_].toString()] = targets[_loc6_];
  225.             }
  226.             _loc6_++;
  227.          }
  228.          for(_loc9_ in _loc2_)
  229.          {
  230.             _loc1_.push(_loc2_[_loc9_]);
  231.          }
  232.          return _loc1_;
  233.       }
  234.       
  235.       override public function getAffectedProperties() : Array
  236.       {
  237.          var _loc1_:Array = null;
  238.          var _loc2_:int = 0;
  239.          var _loc3_:int = 0;
  240.          if(!_affectedProperties)
  241.          {
  242.             _loc1_ = [];
  243.             _loc2_ = int(children.length);
  244.             _loc3_ = 0;
  245.             while(_loc3_ < _loc2_)
  246.             {
  247.                _loc1_ = _loc1_.concat(children[_loc3_].getAffectedProperties());
  248.                _loc3_++;
  249.             }
  250.             _affectedProperties = _loc1_;
  251.          }
  252.          return _affectedProperties;
  253.       }
  254.    }
  255. }
  256.  
  257.