Предотвращает ли установка свойств в AS3 анимацию времени? - PullRequest
2 голосов
/ 10 июня 2009

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

Например, если мой класс устанавливает this.x = 100, и позже на временной шкале я изменяю положение объекта, эта анимация временной шкалы не произойдет.

Изменение свойства scaleX или scaleY также, по-видимому, останавливает анимацию временной шкалы.

Кто-нибудь еще испытывал это, и если да, есть ли способ обойти это?

Ответы [ 2 ]

3 голосов
/ 12 июня 2009

Вы правильно поняли. Изменение некоторых свойств MC на сцене заставит Flash предположить, что вы собираетесь разместить его с помощью скрипта, и анимация больше не будет работать. Пара обходных путей:

  1. Отобразите вещи, чтобы разделить позиционирование по сценариям и IDE. То есть, если вы анимировали положение X объекта, а также вращали его с помощью скрипта, измените его так, чтобы вы анимировали X клипа контейнера и вращали внутренний клип внутри.
  2. Выполните все ваше позиционирование с помощью скрипта - то есть используйте класс Tween или библиотеку анимации.
  3. Если точка воспроизведения проходит за кадром, где клип не находится на сцене, а затем за кадром, где он находится, это «сбрасывает» клип для работы с позиционированием IDE и анимацией. Это верно, даже если вы перепрыгиваете через пустой кадр с gotoAndPlay. Так, например, если вы используете скрипт для перемещения клипа на 10-м кадре, а затем на 20-м кадре вы делаете gotoAndPlay(30);, тогда анимация на 30-м кадре будет работать правильно, если вы поместите пустую рамку где-то между кадрами 20 и 30.
0 голосов
/ 11 июня 2009

Я бы строго придерживался кода as3 на вашем месте.

импортируйте их в начало вашего ActionScript

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

, а затем установите свою анимацию следующим образом:

var myTween:Tween = new Tween(object, "property", EasingType, begin, end, duration, useSeconds);
...