我正在补充数组中的多个项目。但是我希望onComplete只被调用一次。有没有办法把它写得更具可读性?
for (var i : int = 0; i < _cardsToRollOut.length; i++)
{
var wCard : TacticCard = _cardsToRollOut[i];
if (doItOnce) TweenMax.to(wCard, 0.5, { delay:1, rotation:firstRotation + 0.4 * i} );
else
{
doItOnce = true;
TweenMax.to(wCard, 0.5, { delay:1, rotation:firstRotation + 0.4 * i, onComplete:updateCounters } );
}
}
提前谢谢!
答案 0 :(得分:3)
您可以使用Timeline代替:
var timeline:TimelineLite = new TimelineLite({onComplete: updateCounters});
for (var i : int = 0; i < _cardsToRollOut.length; i++)
{
var wCard : TacticCard = _cardsToRollOut[i];
timeline.to(wCard, 0.5, { delay:1, rotation:firstRotation + 0.4 * i} , 0);
}
答案 1 :(得分:1)
这是一种常见的情况,并且有很多方法可以做到这一点。其中之一:
for (var i : int = 0; i < _cardsToRollOut.length; i++)
{
var wCard : TacticCard = _cardsToRollOut[i];
var properties:Object = {};
properties["delay"] = 1;
properties["rotation"] = firstRotation + 0.4 * i;
if(i == _cardsToRollOut.length - 1)
{
properties["onComplete"] = updateCounters;
}
TweenMax.to(wCard, 0.5, properties );
}