Почему есть разница в анимации, которую я делаю, когда анимирую два объекта? - PullRequest
0 голосов
/ 10 августа 2010

У меня есть TextField и Sprite на y = -20;, и они находятся в правильном положении.

Тогда я делаю эту анимацию.

Tweener.addTween(t, {y: 20, time:0.5, transition:"linear"});
Tweener.addTween(noteBar, {y: 20, time:0.5, onComplete:Hold, transition:"linear"});

(t - это TextField, а noteBar - это спрайт)

Что произойдет, когда я это сделаю, это то, что Спрайт перейдет к y = 0; но TextField идет к y = 20;

Это работает правильно, если у меня TextField y в 0 и Sprite y в 20.

Но тогда мне нужно сделать это, чтобы вернуть их в исходное положение.

Tweener.addTween(t, {y: -20, time:0.5, transition:"linear"});
Tweener.addTween(noteBar, {y: 0, time:0.5, transition:"linear"});

Потому что, если я позволю Спрайту уйти -20, тогда он окажется у = -40;

Почему так действует?

1 Ответ

1 голос
/ 11 августа 2010

Когда вы говорите, что «оба находятся при y = -20», вы используете информационную палитру во Flash, чтобы определить это?

Я спрашиваю, потому что в информационной палитре есть два режима для отображения x, y: Регистрация и трансформация.Это переключается нажатием на маленький значок точки регистрации слева от поля X в информационной палитре.

Проблема заключается в том, что в режиме преобразования отображаемые значения x, y будут центром текстового поля, но в действительности значения x, y текстового поля находятся в верхнем левом углу.

Итак, короткий ответ - убедиться, что информационная палитра находится в режиме регистрации (значок с перекрестием), а затем установить текстовое поле на -20.

Другим решением было бы обернуть текстовое поле вsprite, так что он ведет себя так же, как NoteBar, и в этом случае не имеет значения, в каком режиме находится информационная палитра.

Конечно, если вы делаете все это в коде, а не располагаете элементы во Flash, мое решение спорно.

1012 * -Gabriel
...