大家好,所以我有一个名为aPlanetArray
的Movie Clip Objects数组,我想要完成的是让数组中的所有对象向下移动到某个定位,然后停止使用tweenLite或任何其他方法这将实现这一目标。我知道我可以用y+=2
做到这一点,但是我希望所有对象能够在使用Tweenlite的弹跳效果中快速向下移动并保持它们的距离比率。
以下是我在添加到舞台时如何设置它们:
//Numbers
xSpacing = 100;
ySpacing = 180;
startPoint = new Point((stage.stageWidth / 2), (stage.stageHeight / 2) );
private function addOuterPlanets():void
{
for (var i:int = 0; i < nPlanets; i++)
{
outerPlanets = new mcOuterPlanets();
outerPlanets.x = startPoint.x + (xSpacing * i);
outerPlanets.y = startPoint.y - (ySpacing * i);
stage.addChild(outerPlanets);
aPlanetArray.push(outerPlanets);
}
}
当我补间他们时,我正在使用这个tweenlite函数:
for each(var allPlanets:mcOuterPlanets in aPlanetArray)
{
TweenLite.to(allPlanets, 5.0, {y:550, ease:Back.easeOut});
}
这种方法非常完美,但阵列中的所有物体都排成一列,并且不会彼此间隔。任何想法将不胜感激,谢谢!
答案 0 :(得分:2)
最简单的方法是将所有行星放在父容器中,然后移动容器而不是行星。
var planetContainer:Sprite = new Sprite();
function addPlanetsToContainer():void{
for (var i:int = 0; i < aPlanetArray.length; i++){
planetContainer.addChild(aPlanetArray[i]);
}
}
现在你可以在planetContainer
现在把角色放在一个星球上,你可以做到
planet.addChild(character);
或
character.x = planet.x + planet.parent.x;
character.y = planet.y + planet.parent.y;