Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Александър К.Ответов: 1

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

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

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

actionscript

Ответы

Ответ 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.

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы