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

  1. package mx.effects.effectClasses
  2. {
  3.    import mx.core.UIComponent;
  4.    import mx.core.mx_internal;
  5.    import mx.effects.EffectInstance;
  6.    import mx.effects.IEffectInstance;
  7.    import mx.effects.Tween;
  8.    
  9.    use namespace mx_internal;
  10.    
  11.    public class SequenceInstance extends CompositeEffectInstance
  12.    {
  13.       mx_internal static const VERSION:String = "3.5.0.12683";
  14.       
  15.       private var startTime:Number = 0;
  16.       
  17.       private var currentInstanceDuration:Number = 0;
  18.       
  19.       private var currentSetIndex:int = -1;
  20.       
  21.       private var currentSet:Array;
  22.       
  23.       private var activeChildCount:Number;
  24.       
  25.       public function SequenceInstance(param1:Object)
  26.       {
  27.          super(param1);
  28.       }
  29.       
  30.       override public function stop() : void
  31.       {
  32.          var _loc1_:Array = null;
  33.          var _loc2_:Array = null;
  34.          var _loc3_:int = 0;
  35.          var _loc4_:int = 0;
  36.          var _loc5_:int = 0;
  37.          var _loc6_:int = 0;
  38.          var _loc7_:Array = null;
  39.          var _loc8_:int = 0;
  40.          var _loc9_:int = 0;
  41.          var _loc10_:IEffectInstance = null;
  42.          if(Boolean(mx_internal::activeEffectQueue) && mx_internal::activeEffectQueue.length > 0)
  43.          {
  44.             _loc1_ = mx_internal::activeEffectQueue.concat();
  45.             mx_internal::activeEffectQueue = null;
  46.             _loc2_ = _loc1_[currentSetIndex];
  47.             _loc3_ = int(_loc2_.length);
  48.             _loc4_ = 0;
  49.             while(_loc4_ < _loc3_)
  50.             {
  51.                _loc2_[_loc4_].stop();
  52.                _loc4_++;
  53.             }
  54.             _loc5_ = int(_loc1_.length);
  55.             _loc6_ = currentSetIndex + 1;
  56.             while(_loc6_ < _loc5_)
  57.             {
  58.                _loc7_ = _loc1_[_loc6_];
  59.                _loc8_ = int(_loc7_.length);
  60.                _loc9_ = 0;
  61.                while(_loc9_ < _loc8_)
  62.                {
  63.                   _loc10_ = _loc7_[_loc9_];
  64.                   _loc10_.effect.deleteInstance(_loc10_);
  65.                   _loc9_++;
  66.                }
  67.                _loc6_++;
  68.             }
  69.          }
  70.          super.stop();
  71.       }
  72.       
  73.       private function playNextChildSet(param1:Number = 0) : Boolean
  74.       {
  75.          var _loc2_:EffectInstance = null;
  76.          if(!mx_internal::playReversed)
  77.          {
  78.             if(!mx_internal::activeEffectQueue || currentSetIndex++ >= mx_internal::activeEffectQueue.length - 1)
  79.             {
  80.                return false;
  81.             }
  82.          }
  83.          else if(currentSetIndex-- <= 0)
  84.          {
  85.             return false;
  86.          }
  87.          var _loc3_:Array = mx_internal::activeEffectQueue[currentSetIndex];
  88.          currentSet = [];
  89.          var _loc4_:int = 0;
  90.          while(_loc4_ < _loc3_.length)
  91.          {
  92.             _loc2_ = _loc3_[_loc4_];
  93.             currentSet.push(_loc2_);
  94.             _loc2_.mx_internal::playReversed = mx_internal::playReversed;
  95.             if(_loc2_.suspendBackgroundProcessing)
  96.             {
  97.                UIComponent.suspendBackgroundProcessing();
  98.             }
  99.             _loc2_.startEffect();
  100.             _loc4_++;
  101.          }
  102.          currentInstanceDuration += _loc2_.mx_internal::actualDuration;
  103.          return true;
  104.       }
  105.       
  106.       override mx_internal function get durationWithoutRepeat() : Number
  107.       {
  108.          var _loc4_:Array = null;
  109.          var _loc1_:Number = 0;
  110.          var _loc2_:int = int(mx_internal::childSets.length);
  111.          var _loc3_:int = 0;
  112.          while(_loc3_ < _loc2_)
  113.          {
  114.             _loc4_ = mx_internal::childSets[_loc3_];
  115.             _loc1_ += _loc4_[0].actualDuration;
  116.             _loc3_++;
  117.          }
  118.          return _loc1_;
  119.       }
  120.       
  121.       override public function end() : void
  122.       {
  123.          var _loc1_:Array = null;
  124.          var _loc2_:Array = null;
  125.          var _loc3_:int = 0;
  126.          var _loc4_:int = 0;
  127.          var _loc5_:int = 0;
  128.          var _loc6_:int = 0;
  129.          var _loc7_:Array = null;
  130.          var _loc8_:int = 0;
  131.          var _loc9_:int = 0;
  132.          mx_internal::endEffectCalled = true;
  133.          if(Boolean(mx_internal::activeEffectQueue) && mx_internal::activeEffectQueue.length > 0)
  134.          {
  135.             _loc1_ = mx_internal::activeEffectQueue.concat();
  136.             mx_internal::activeEffectQueue = null;
  137.             _loc2_ = _loc1_[currentSetIndex];
  138.             _loc3_ = int(_loc2_.length);
  139.             _loc4_ = 0;
  140.             while(_loc4_ < _loc3_)
  141.             {
  142.                _loc2_[_loc4_].end();
  143.                _loc4_++;
  144.             }
  145.             _loc5_ = int(_loc1_.length);
  146.             _loc6_ = currentSetIndex + 1;
  147.             while(_loc6_ < _loc5_)
  148.             {
  149.                _loc7_ = _loc1_[_loc6_];
  150.                _loc8_ = int(_loc7_.length);
  151.                _loc9_ = 0;
  152.                while(_loc9_ < _loc8_)
  153.                {
  154.                   EffectInstance(_loc7_[_loc9_]).mx_internal::playWithNoDuration();
  155.                   _loc9_++;
  156.                }
  157.                _loc6_++;
  158.             }
  159.          }
  160.          super.end();
  161.       }
  162.       
  163.       override public function reverse() : void
  164.       {
  165.          var _loc1_:int = 0;
  166.          var _loc2_:int = 0;
  167.          super.reverse();
  168.          if(Boolean(currentSet) && currentSet.length > 0)
  169.          {
  170.             _loc1_ = int(currentSet.length);
  171.             _loc2_ = 0;
  172.             while(_loc2_ < _loc1_)
  173.             {
  174.                currentSet[_loc2_].reverse();
  175.                _loc2_++;
  176.             }
  177.          }
  178.       }
  179.       
  180.       override protected function onEffectEnd(param1:IEffectInstance) : void
  181.       {
  182.          if(Object(param1).suspendBackgroundProcessing)
  183.          {
  184.             UIComponent.resumeBackgroundProcessing();
  185.          }
  186.          if(mx_internal::endEffectCalled)
  187.          {
  188.             return;
  189.          }
  190.          var _loc2_:int = 0;
  191.          while(_loc2_ < currentSet.length)
  192.          {
  193.             if(param1 == currentSet[_loc2_])
  194.             {
  195.                currentSet.splice(_loc2_,1);
  196.                break;
  197.             }
  198.             _loc2_++;
  199.          }
  200.          if(currentSet.length == 0)
  201.          {
  202.             if(false == playNextChildSet())
  203.             {
  204.                finishRepeat();
  205.             }
  206.          }
  207.       }
  208.       
  209.       override public function resume() : void
  210.       {
  211.          var _loc1_:int = 0;
  212.          var _loc2_:int = 0;
  213.          super.resume();
  214.          if(Boolean(currentSet) && currentSet.length > 0)
  215.          {
  216.             _loc1_ = int(currentSet.length);
  217.             _loc2_ = 0;
  218.             while(_loc2_ < _loc1_)
  219.             {
  220.                currentSet[_loc2_].resume();
  221.                _loc2_++;
  222.             }
  223.          }
  224.       }
  225.       
  226.       override public function play() : void
  227.       {
  228.          var _loc1_:int = 0;
  229.          var _loc2_:int = 0;
  230.          var _loc3_:int = 0;
  231.          var _loc4_:int = 0;
  232.          var _loc5_:Array = null;
  233.          mx_internal::activeEffectQueue = [];
  234.          currentSetIndex = !!mx_internal::playReversed ? int(mx_internal::childSets.length) : -1;
  235.          _loc1_ = int(mx_internal::childSets.length);
  236.          _loc2_ = 0;
  237.          while(_loc2_ < _loc1_)
  238.          {
  239.             _loc5_ = mx_internal::childSets[_loc2_];
  240.             mx_internal::activeEffectQueue.push(_loc5_);
  241.             _loc2_++;
  242.          }
  243.          super.play();
  244.          startTime = Tween.mx_internal::intervalTime;
  245.          if(mx_internal::activeEffectQueue.length == 0)
  246.          {
  247.             finishRepeat();
  248.             return;
  249.          }
  250.          playNextChildSet();
  251.       }
  252.       
  253.       override public function pause() : void
  254.       {
  255.          var _loc1_:int = 0;
  256.          var _loc2_:int = 0;
  257.          super.pause();
  258.          if(Boolean(currentSet) && currentSet.length > 0)
  259.          {
  260.             _loc1_ = int(currentSet.length);
  261.             _loc2_ = 0;
  262.             while(_loc2_ < _loc1_)
  263.             {
  264.                currentSet[_loc2_].pause();
  265.                _loc2_++;
  266.             }
  267.          }
  268.       }
  269.    }
  270. }
  271.  
  272.