2012-01-10 38 views
0

我有两个数组包含几个影片剪辑。我用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})); 
} 

我需要在第二阵列应用略微不同的补间,并且同时触发它们,或具有小的偏移。

回答

1

您可以使用2个TimelineMax对象以及一个Timer。将侦听器添加到定时器中,以便在第二个数组中加载第二个TimelineMax时调用该定时器。你的偏移量是你设置定时器延迟的值。

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文档:

insertMultiple()和appendMultiple()提供了一些非常强大的 排序功能,允许您添加补间的数组(使用 TweenLite/Max实例或新的简写语法,如[mc,1, {x:100}]),并可选择将它们与SEQUENCE或START模式对齐,并且如果需要,甚至可以使它们错开。例如,插入3个充斥到 的时间表,使企业的开始时间,但0.2 秒咋舌他们,

和链接到这里的文档: http://www.greensock.com/as/docs/tween/_timelinemax.html

+0

非常感谢!我做的! :) – 2012-01-11 11:32:22

+0

如果这是您选择的答案,您是否介意点击接受?它将使问题不会显示为公开,并帮助人们进行搜索以找到有效的答案。 – 2012-01-11 17:19:08