У меня есть некоторые проблемы с движениями и анимацией: я хочу переместить свой спрайт в правый нижний угол (800 600), а затем в левый верхний угол (0,0). Но мои подростки не ждут друг друга.
motion.toBotCorner(currentSprite);
motion.toTopCorner(currentSprite);
И это в моем классе движения:
public function toBotCorner(currSpr:Sprite):void {
TweenLite.to(currSpr, 3, {x:800, y:600});
}
public function toTopCorner(currSpr:Sprite):void {
TweenLite.to(currSpr, 3, {x:0, y:0});
}
Как сделать первый процесс, а затем второй? Благодарю вас!
Ответ 1 · рейтинг 1 · Gurtej Singh
Вы должны использовать 'onComplete', предоставляемый TweenLite, в своей первой анимации. Для этого требуется имя метода, и используйте 'onCompleteParams' для отправки параметров в вызов метода.
Итак, ваш код теперь будет выглядеть так:
public function toBotCorner(currSpr:Sprite):void {
TweenLite.to(currSpr, 3, {x:800, y:600, onComplete:toTopCorner, onCompleteParams:[currSpr]});
}
public function toTopCorner(currSpr:Sprite):void {
TweenLite.to(currSpr, 3, {x:0, y:0});
}
Обратите внимание, что onCompleteParams: представляет собой массив, так как метод может иметь несколько передаваемых параметров.
Вот что говорят документы:
onComplete : Function - функция, которая должна быть вызвана после завершения анимации.
onCompleteParams: массив - массив параметров для передачи функции onComplete.
Надеюсь это поможет. Пожалуйста, примите этот ответ, если он работает для вас, это закроет вопрос. Спасибо!