Tweenlite — цепочка последовательностей, TweenLite.to не запускаются

#flash #actionscript-3 #flash-cs5 #tween #gsap

#flash #actionscript-3 #flash-cs5 #анимация #gsap

Вопрос:

Это довольно просто, чего я пытаюсь достичь. У меня есть MC на сцене, который я пытаюсь настроить по разным координатам X.

Я настроил четыре TweenLite.to последовательности, однако по какой-то странной причине запускается только одна — что я делаю не так?

 TweenLite.to(slider.mc_slider,1,{x:_returnXPos(95), ease:menuEasing});
TweenLite.to(slider.mc_slider,1,{delay: 1, x:_returnXPos(35), ease:menuEasing});
TweenLite.to(slider.mc_slider,1,{delay: 2, x:_returnXPos(50), ease:menuEasing});

//Function which returns x coordinate of Sliderbar - related to defined percentage
function _returnXPos(definedPercentage:Number):Number {
    var defineWidth:Number = slider.mc_background.width * (definedPercentage/100);
    return defineWidth;
}
  

Ответ №1:

Проблема может заключаться в том, что вам нужно убедиться, что вы используете OverwriteManager с правильными настройками, иначе это может просто перезаписать ваши файлы для подростков, независимо от задержек, см.: http://www.greensock.com/overwritemanager

Ответ №2:

В дополнение к тому, что предложил дейн, вы также можете захотеть проверить TimelineLight.

Комментарии:

1. Спасибо, Генча, я обязательно рассмотрю это — не знал, что у greensock было так много доступных вещей.

Ответ №3:

Просматривая код (не на машине, на которой я могу это протестировать), выполняется только последняя анимация. Если вы хотите, чтобы они запускались последовательно, вам нужно указать функцию обратного вызова. К сожалению, вы не можете использовать анонимные функции.

 TweenLite.to(slider.mc_slider,1,{x:_returnXPos(95),ease:menuEasing,onComplete:nextTween,onCompleteParams:[35]});

function nextTween(newPos:int)
{
    TweenLite.to(slider.mc_slider,1,{x:_returnXPos(newPos),ease:menuEasing,onComplete:finalTween,onCompleteParams:[50]});
}

function finalTween(newPos:int)
{
    TweenLite.to(slider.mc_slider,1,{x:_returnXPos(newPos),ease:menuEasing,onComplete:finalTween,onCompleteParams:[50]});
}
  

Не лучший ответ, поскольку вы повторяете код ТРИ раза. Когда я доберусь до ПК, на котором смогу это протестировать, я преобразоваю код в единственную функцию.

Комментарии:

1. Привет, Дики, спасибо за ответ. Я также думал о функции onComplete, но мне просто показалось раздражающим, что это нужно делать. К счастью, OverwriteManager сделал это за меня — greensock.com/overwritemanager . Спасибо за вклад