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

  1. package mx.effects.effectClasses
  2. {
  3.    import flash.events.Event;
  4.    import mx.core.mx_internal;
  5.    import mx.effects.EffectInstance;
  6.    import mx.effects.IEffectInstance;
  7.    import mx.effects.Tween;
  8.    import mx.events.EffectEvent;
  9.    
  10.    use namespace mx_internal;
  11.    
  12.    public class CompositeEffectInstance extends EffectInstance
  13.    {
  14.       mx_internal static const VERSION:String = "3.5.0.12683";
  15.       
  16.       mx_internal var childSets:Array = [];
  17.       
  18.       mx_internal var activeEffectQueue:Array = [];
  19.       
  20.       private var _playheadTime:Number = 0;
  21.       
  22.       mx_internal var timerTween:Tween;
  23.       
  24.       mx_internal var endEffectCalled:Boolean;
  25.       
  26.       public function CompositeEffectInstance(param1:Object)
  27.       {
  28.          super(param1);
  29.       }
  30.       
  31.       override public function get playheadTime() : Number
  32.       {
  33.          return _playheadTime + super.playheadTime;
  34.       }
  35.       
  36.       override mx_internal function get actualDuration() : Number
  37.       {
  38.          var _loc1_:Number = NaN;
  39.          if(repeatCount > 0)
  40.          {
  41.             _loc1_ = mx_internal::durationWithoutRepeat * repeatCount + (repeatDelay * repeatCount - 1) + startDelay;
  42.          }
  43.          return _loc1_;
  44.       }
  45.       
  46.       override public function play() : void
  47.       {
  48.          mx_internal::timerTween = new Tween(this,0,0,mx_internal::durationWithoutRepeat);
  49.          super.play();
  50.       }
  51.       
  52.       override public function finishEffect() : void
  53.       {
  54.          mx_internal::activeEffectQueue = null;
  55.          super.finishEffect();
  56.       }
  57.       
  58.       mx_internal function hasRotateInstance() : Boolean
  59.       {
  60.          var _loc1_:int = 0;
  61.          var _loc2_:CompositeEffectInstance = null;
  62.          if(mx_internal::childSets)
  63.          {
  64.             _loc1_ = 0;
  65.             while(_loc1_ < mx_internal::childSets.length)
  66.             {
  67.                if(mx_internal::childSets[_loc1_].length > 0)
  68.                {
  69.                   _loc2_ = mx_internal::childSets[_loc1_][0] as CompositeEffectInstance;
  70.                   if(mx_internal::childSets[_loc1_][0] is RotateInstance || _loc2_ && _loc2_.mx_internal::hasRotateInstance())
  71.                   {
  72.                      return true;
  73.                   }
  74.                }
  75.                _loc1_++;
  76.             }
  77.          }
  78.          return false;
  79.       }
  80.       
  81.       mx_internal function get durationWithoutRepeat() : Number
  82.       {
  83.          return 0;
  84.       }
  85.       
  86.       override public function initEffect(param1:Event) : void
  87.       {
  88.          var _loc4_:Array = null;
  89.          var _loc5_:int = 0;
  90.          var _loc6_:int = 0;
  91.          super.initEffect(param1);
  92.          var _loc2_:int = int(mx_internal::childSets.length);
  93.          var _loc3_:int = 0;
  94.          while(_loc3_ < _loc2_)
  95.          {
  96.             _loc4_ = mx_internal::childSets[_loc3_];
  97.             _loc5_ = int(_loc4_.length);
  98.             _loc6_ = 0;
  99.             while(_loc6_ < _loc5_)
  100.             {
  101.                _loc4_[_loc6_].initEffect(param1);
  102.                _loc6_++;
  103.             }
  104.             _loc3_++;
  105.          }
  106.       }
  107.       
  108.       override public function stop() : void
  109.       {
  110.          super.stop();
  111.          if(mx_internal::timerTween)
  112.          {
  113.             mx_internal::timerTween.stop();
  114.          }
  115.       }
  116.       
  117.       override public function reverse() : void
  118.       {
  119.          super.reverse();
  120.          super.mx_internal::playReversed = !mx_internal::playReversed;
  121.          if(mx_internal::timerTween)
  122.          {
  123.             mx_internal::timerTween.reverse();
  124.          }
  125.       }
  126.       
  127.       public function addChildSet(param1:Array) : void
  128.       {
  129.          var _loc2_:int = 0;
  130.          var _loc3_:int = 0;
  131.          if(param1)
  132.          {
  133.             _loc2_ = int(param1.length);
  134.             if(_loc2_ > 0)
  135.             {
  136.                if(!mx_internal::childSets)
  137.                {
  138.                   mx_internal::childSets = [param1];
  139.                }
  140.                else
  141.                {
  142.                   mx_internal::childSets.push(param1);
  143.                }
  144.                _loc3_ = 0;
  145.                while(_loc3_ < _loc2_)
  146.                {
  147.                   param1[_loc3_].addEventListener(EffectEvent.EFFECT_END,mx_internal::effectEndHandler);
  148.                   param1[_loc3_].mx_internal::parentCompositeEffectInstance = this;
  149.                   _loc3_++;
  150.                }
  151.             }
  152.          }
  153.       }
  154.       
  155.       protected function onEffectEnd(param1:IEffectInstance) : void
  156.       {
  157.       }
  158.       
  159.       override mx_internal function playWithNoDuration() : void
  160.       {
  161.          super.mx_internal::playWithNoDuration();
  162.          end();
  163.       }
  164.       
  165.       public function onTweenUpdate(param1:Object) : void
  166.       {
  167.          _playheadTime = !!mx_internal::timerTween ? mx_internal::timerTween.mx_internal::playheadTime : _playheadTime;
  168.       }
  169.       
  170.       override public function pause() : void
  171.       {
  172.          super.pause();
  173.          if(mx_internal::timerTween)
  174.          {
  175.             mx_internal::timerTween.pause();
  176.          }
  177.       }
  178.       
  179.       mx_internal function effectEndHandler(param1:EffectEvent) : void
  180.       {
  181.          onEffectEnd(param1.effectInstance);
  182.       }
  183.       
  184.       override public function resume() : void
  185.       {
  186.          super.resume();
  187.          if(mx_internal::timerTween)
  188.          {
  189.             mx_internal::timerTween.resume();
  190.          }
  191.       }
  192.       
  193.       public function onTweenEnd(param1:Object) : void
  194.       {
  195.          _playheadTime = !!mx_internal::timerTween ? mx_internal::timerTween.mx_internal::playheadTime : _playheadTime;
  196.       }
  197.    }
  198. }
  199.  
  200.