Движения с анимацией одно за другим в ActionScript?

У меня есть некоторые проблемы с движениями и анимацией: я хочу переместить свой спрайт в правый нижний угол (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});
        }

Как сделать первый процесс, а затем второй? Благодарю вас!


person Александър К.    schedule 26.07.2015    source источник
comment
Вы можете создавать последовательности твинов с помощью TimelineLite, это, вероятно, самый простой способ: greensock.com/getting- начало-как#timeline   -  person Philarmon    schedule 27.07.2015


Ответы (1)


Вы должны использовать '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.

Надеюсь это поможет. Пожалуйста, примите этот ответ, если он работает для вас, это закроет вопрос. Спасибо!

person Gurtej Singh    schedule 26.07.2015