Flash AS3 Looping mc внутри функции - PullRequest
0 голосов
/ 04 мая 2011

У меня есть несколько видеороликов, которые анимируются с использованием TweenLite (код ниже), но я бы хотел их циклически повторять 2 или 3 раза.Я поместил их в функцию, но не могу заставить их зацикливаться.Начальные позиции для каждого мувиклипа определяются перед этой функцией - пример ниже.

Есть идеи, где я ошибаюсь?S

private var F_Apricot:Fruit_Apricot;

F_Apricot = new Fruit_Apricot();
        addChild(F_Apricot);    
        F_Apricot.x=222;
        F_Apricot.y=-189;   
        F_Apricot.scaleX=0.7;
        F_Apricot.scaleY=0.7;               
        setChildIndex(F_Apricot, 2);

function fruitLoop():void {             
            TweenLite.to(F_Passion, 1.7, {blurFilter:{blurX:8}, delay:1, x:277, y:325, scaleX:0.7, scaleY:0.7, rotation:28, ease:Cubic.easeOut});
            TweenLite.to(F_Black1, 1.7, {blurFilter:{blurX:8}, delay:1.2, x:238, y:305, scaleX:0.5, scaleY:0.5, rotation:58, ease:Cubic.easeOut});          
            TweenLite.to(F_Apricot, 1.7, {blurFilter:{blurX:8}, delay:1.5, x:303, y:305, scaleX:0.7, scaleY:0.7, rotation:47, ease:Cubic.easeOut});
            TweenLite.to(F_Raspberry, 1.7, {blurFilter:{blurX:8}, delay:1.6, x:207, y:305, scaleX:0.4, scaleY:0.4, rotation:18, ease:Cubic.easeOut});
            TweenLite.to(F_Black2, 1.7, {blurFilter:{blurX:8}, delay:1.7, x:314, y:305, scaleX:0.5, scaleY:0.5, rotation:28, ease:Cubic.easeOut});
            TweenLite.to(F_Cherries, 1.7, {blurFilter:{blurX:8}, delay:2.1, x:288, y:247, scaleX:0.6, scaleY:0.6, rotation:38, ease:Cubic.easeOut});
            TweenLite.to(F_Black3, 1.7, {blurFilter:{blurX:8}, delay:2.3, x:323, y:305, scaleX:0.4, scaleY:0.4, rotation:-8, ease:Cubic.easeOut});          
            TweenLite.to(F_Lime, 1.7, {blurFilter:{blurX:8}, delay:2.4, x:208, y:305, scaleX:0.5, scaleY:0.5, rotation:28, ease:Cubic.easeOut});            
            TweenLite.to(F_Mango, 1.7, {blurFilter:{blurX:8}, delay:2.7, x:205, y:355, scaleX:0.7, scaleY:0.7, rotation:-38, ease:Cubic.easeOut});          
            TweenLite.to(F_Black4, 1.7, {blurFilter:{blurX:8}, delay:2.9, x:188, y:305, scaleX:0.5, scaleY:0.5, rotation:-8, ease:Cubic.easeOut});
            TweenLite.to(F_Raspberry1, 1.7, {blurFilter:{blurX:8}, delay:3, x:303, y:305, scaleX:0.4, scaleY:0.4, rotation:-8, ease:Cubic.easeOut});        
        }       

        fruitLoop();

Ответы [ 3 ]

0 голосов
/ 05 мая 2011

TweenLite имеет параметр onComplete, который можно использовать для запуска следующего цикла.

http://www.greensock.com/as/docs/tween/_tweenlite.html

0 голосов
/ 05 мая 2011

Если вам нужно, чтобы движение повторялось несколько раз (по сравнению с вечностью), вы можете настроить все переходы одновременно, используя параметр «delay» для управления тем, что происходит, когда. Убедитесь, что для «overwrite» установлено значение false, чтобы все цепочечные переходы происходили, а не только для последнего установленного.

псевдокод:

TweenLite.to(obj, 500, x=0);
TweenLite.to(obj, 500, x=0, delay=500, overwrite=false);
TweenLite.to(obj, 500, x=100, delay=1000, overwrite=false);
TweenLite.to(obj, 500, x=0, delay=1500, overwrite=false);
TweenLite.to(obj, 500, x=100, delay=2000, overwrite=false);
TweenLite.to(obj, 500, x=0, delay=2500, overwrite=false);
0 голосов
/ 04 мая 2011
private var F_Apricot:Fruit_Apricot;

F_Apricot = new Fruit_Apricot();
  addChild(F_Apricot);    
  F_Apricot.x=222;
  F_Apricot.y=-189;   
  F_Apricot.scaleX=0.7;
  F_Apricot.scaleY=0.7;               
  setChildIndex(F_Apricot, 2);

function fruitLoop():void {     
  TweenLite.to(F_Passion, 1.7, {blurFilter:{blurX:8}, delay:1, x:277, y:325, scaleX:0.7, scaleY:0.7, rotation:28, ease:Cubic.easeOut});
  TweenLite.to(F_Black1, 1.7, {blurFilter:{blurX:8}, delay:1.2, x:238, y:305, scaleX:0.5, scaleY:0.5, rotation:58, ease:Cubic.easeOut});          
  TweenLite.to(F_Apricot, 1.7, {blurFilter:{blurX:8}, delay:1.5, x:303, y:305, scaleX:0.7, scaleY:0.7, rotation:47, ease:Cubic.easeOut});
  TweenLite.to(F_Raspberry, 1.7, {blurFilter:{blurX:8}, delay:1.6, x:207, y:305, scaleX:0.4, scaleY:0.4, rotation:18, ease:Cubic.easeOut});
  TweenLite.to(F_Black2, 1.7, {blurFilter:{blurX:8}, delay:1.7, x:314, y:305, scaleX:0.5, scaleY:0.5, rotation:28, ease:Cubic.easeOut});
  TweenLite.to(F_Cherries, 1.7, {blurFilter:{blurX:8}, delay:2.1, x:288, y:247, scaleX:0.6, scaleY:0.6, rotation:38, ease:Cubic.easeOut});
  TweenLite.to(F_Black3, 1.7, {blurFilter:{blurX:8}, delay:2.3, x:323, y:305, scaleX:0.4, scaleY:0.4, rotation:-8, ease:Cubic.easeOut});          
  TweenLite.to(F_Lime, 1.7, {blurFilter:{blurX:8}, delay:2.4, x:208, y:305, scaleX:0.5, scaleY:0.5, rotation:28, ease:Cubic.easeOut});            
  TweenLite.to(F_Mango, 1.7, {blurFilter:{blurX:8}, delay:2.7, x:205, y:355, scaleX:0.7, scaleY:0.7, rotation:-38, ease:Cubic.easeOut});          
  TweenLite.to(F_Black4, 1.7, {blurFilter:{blurX:8}, delay:2.9, x:188, y:305, scaleX:0.5, scaleY:0.5, rotation:-8, ease:Cubic.easeOut});
  TweenLite.to(F_Raspberry1, 1.7, {blurFilter:{blurX:8}, delay:3, x:303, y:305, scaleX:0.4, scaleY:0.4, rotation:-8, ease:Cubic.easeOut});  

  if(timer.currentCount>3 ){
    timer.stop()
  }       
}

    var timer:Timer = new Timer( 1000 );
    timer.addEventListener(TimerEvent.TIMER, fruitLoop )
    timer.start()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...