Анимация объекта на сцене с использованием ActionScript 3.0 - PullRequest
0 голосов
/ 06 августа 2011

Я имею в виду только ActionScript.Можно ли анимировать объект так, чтобы он двигался по заранее нарисованному в траектории Flash Professional?Я знаю, что могу использовать onEnterFrame с некоторыми математическими уравнениями для перемещения объекта, но что, если траектория слишком сложная?Видите ли, я даже не знаю, как сформулировать вопрос.Надеюсь, вы поняли меня правильно.Спасибо за любые подсказки или советы заранее:))

Ответы [ 5 ]

3 голосов
/ 30 сентября 2011

Создай свою анимацию движения визуально.Щелкните правой кнопкой мыши на анимации на временной шкале.Выберите «Копировать движение как ActionScript 3.0».

После этого вы можете просто создать функцию с использованием этого кода и передать свой объект в функцию в качестве параметра.

3 голосов
/ 07 августа 2011

В Flash Professional добавьте и анимируйте пустой спрайт или спрайт с пустышкой, внутри которой вы можете скрыть / удалить (если вы хотите иметь визуальную ссылку в IDE), вдоль вашего пути, как если бы вы использовали«статическая» анимация.Хитрость заключается в том, что с помощью ActionScript вы сможете ссылаться на родительский спрайт во время выполнения и добавлять в него дочерний элемент по вашему выбору в начале координат.Не забудьте удалить или скрыть манекен, если вы решите его использовать.

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

Это либо так, либо, как предлагали другие, вы определяете свой путь с помощью точек с помощью ActionScript и твинаобъект по вашему выбору вдоль воображаемого интерполированного пути, с кодом снова.Там нет недостатка в твининге библиотек.

Я почти уверен, что первый вариант требует меньше кода и требует меньших затрат на проигрывателя в том, что касается получаемой анимации.Это то, что люди делали в прежние времена Flash :-) Но многие разработчики приложений Flash Player в наши дни часто хотят делать как можно больше с кодом, по нескольким причинам.

2 голосов
/ 07 августа 2011

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

Чтобы переместить ваш объект, вы можете использовать класс Timer или некоторую анимацию движения, а не только ввести кадр.

1 голос
/ 25 сентября 2011

Чтобы получить значения для точек (для использования, как предложено другими ответами здесь), вы можете попробовать использовать декодер формы Марио Клингемана, предпочтительно на SWF, который содержит только путь:

http://www.quasimondo.com/shapedecoder/qm_shape_decoder.php

1 голос
/ 07 августа 2011

Вам нужно будет определить путь, по которому вы хотите, чтобы объекты брали, используя путь, который вычисляется с помощью ActionScript (по крайней мере, это облегчит перемещение объекта по этому пути).

Когда вы рисуетепуть в Flash Auth.Инструмент, вы сохраняете не фактический путь, а только графику пути (во время выполнения), поэтому у вас нет доступных данных о точках, чтобы указать вашему объекту, куда идти.

Если вы создаете Vectorиз Point s, где точки равны x, y, координаты на сцене, вы можете затем Tween между каждой из точек в Vector.

У вас будут храниться точки вVector, и они могут быть применены к любому Sprite или MovieClip случайным образом.Класс Tween может «заполнить промежутки» между точками в Vector.

Интересное замечание: вы можете автоматически создавать гораздо более гладкие пути между точками (в векторе), используя изогнутый сплайн Catmull-Rom,Вот библиотека классов, которая содержит эту функциональность: http://www.algorithmist.net/as3pc.html

Люди используют эти сплайны для загрузки путей, по которым следуют 3D-камеры, чтобы получить плавный вид при перемещении камеры вокруг сцены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...