使两个数组同时启动

时间:2012-01-10 19:06:45

标签: flash actionscript-3 tweenlite greensock

我有两个数组包含几个影片剪辑。我用for循环成功地在时间轴对象中注入第一个数组。但后来我意识到,我将对第二个数组做什么,我需要同时启动它们,每个数组必须在x和y处有不同的目标。

想象一下横幅745x100px,我需要将不同的电影剪辑从侧面动画到某个目的地。

代码示例:

import com.greensock.*;
import com.greensock.easing.*;
import flash.display.MovieClip;


var mainArray:Array = [amcMC, tantrumMC, blokMC, misMC, futMC, laoMC, cauMC, deepMC, plusMC, noMC, copMC ];
var therapyArray:Array = [kurtenMC, panacMC, dubMC, lowMC, dtoxMC, hunMC, mopMC, zenMC, hanMC, conMC ];

var timeline:TimelineMax = new TimelineMax({repeat:-1});

for(var key:String in mainArray){
   var mcMain:MovieClip = MovieClip(mainArray[key]);
   timeline.append(TweenMax.from(mcMain,1 ,{x:-200 y: 40, scaleX:0.1, blurFilter:{blurX:20}, ease:Back.easeOut}));
   timeline.append(TweenMax.to(mcMain,cas,{x:-200, y: 40, delay:1, blurFilter:{blurX:20}, ease:Back.easeOut}));   
}

我需要在第二个数组上应用稍微不同的补间并同时触发它们,或者使用小偏移量。

2 个答案:

答案 0 :(得分:2)

使用insertMultiple。这允许您在时间轴中的同一点添加多个补间。如果您喜欢使用此方法,您甚至可以使用设置以均匀的延迟均匀分隔它们。

这是一个例子:

var timeline:TimelineMax = new TimelineMax({repeat:2, yoyo:true, repeatDelay:1.5});
timeline.append( TweenLite.from(blackBar, 0.8, {x:550}) );
timeline.insertMultiple( TweenMax.allFrom([logo, timelineWord, maxWord, byGreenSock], 0.5, {autoAlpha:0}, 0.25), 0.6);
timeline.insertMultiple( TweenMax.allFrom(lettersArray, 1, {y:"-30", alpha:0, ease:Elastic.easeOut}, 0.04), 1.4);
来自greensock docs的

  

insertMultiple()和appendMultiple()提供了一些非常强大的功能   排序功能,允许您添加补间数组(使用   TweenLite / Max实例或新的速记语法,如[mc,1,   {x:100}])并可选择将它们与SEQUENCE或START模式对齐,以及   如果你愿意,甚至会让他们错开。例如,要插入3个补间   时间轴,调整他们的开始时间,然后将他们错开0.2   秒,

以及此处文档的链接: http://www.greensock.com/as/docs/tween/_timelinemax.html

答案 1 :(得分:1)

您可以使用2个TimelineMax对象和Timer。向定时器添加一个监听器,当被调用时,将使用第二个阵列加载第二个TimelineMax。您的偏移量将是您将定时器延迟设置为的任何值。