Flash / AS3 - Как вы получаете точки пути, нарисованного во Flash - PullRequest
3 голосов
/ 31 августа 2011

Можно ли нарисовать траекторию во флэш-памяти и получить доступ к точкам из AS?

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

Ответы [ 4 ]

0 голосов
/ 31 августа 2011

Если вы заранее знаете точки на траектории, вы можете сохранить их в массиве или векторе и обработать свой рисунок вручную. Проверьте класс Graphics для методов рисования. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html.

Если вы не хотите идти по этому пути, вы можете применить некоторый код для выполнения этой работы за вас. Один из возможных способов сделать это, если вы знаете начальную точку: нарисуйте скрытый путь на фигуре с определенным цветом (например, 0x00ff0000, полностью прозрачный красный). Затем нарисуйте свою фигуру в экземпляр BitmapData. В каждом кадре ищите полностью прозрачные красные пиксели рядом с вашей текущей позицией (используя метод getPixel в BitmapData), в которую вы еще не перешли, и затем переходите к этой точке. Обратите внимание, что этот метод не поддерживает пересечения.

0 голосов
/ 31 августа 2011

Вы можете создать массив из Point объектов, сохранив там все контрольные точки вашего пути.И в тот момент, когда нужно красиво показать свой путь.Вам просто нужно нарисовать его построчно: линию от точки 1 до точки 2, линию от точки 2 до точки 3 ... и т. Д. Лучше сделать это на каком-то отдельном спрайте поверх объекта карты, так что выПозже можно легко удалить его со сцены.

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

0 голосов
/ 31 августа 2011

Я никогда не пробовал этого, но технически это должно быть возможно с использованием библиотеки, подобной as3swf , которая является синтаксическим анализатором SWF, написанным на actioncript.

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

Хотя эта процедура кажется мне ужасно обратной.Более простой и выполнимый подход - нарисовать ваши пути во Flash, выбрать их и экспортировать, используя: File > Export > Export Selection..., затем экспортируйте как Adobe FXG.Это будет экспортировать ваши пути в виде FXG XML файла.

Затем вы можете проанализировать файл FXG во флэш-памяти и извлечь интересующие вас координаты пути.Не должно быть так сложно реализовать.Также взгляните на документ класса Path , поскольку он содержит некоторую информацию о том, как хранятся координаты, и должен интерпретироваться.

0 голосов
/ 31 августа 2011

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

Возможно, вы сможете получить нужный эффект, прокручивая видеоклип по пути, скажем, более 100 кадров, используя инструменты анимации (GUI), затем управляя содержимым видеоклипа и воспроизведением анимации через AS3.

В противном случае вам нужно будет нарисовать ваши пути в Illustrator или аналогичном формате, экспортировать через (например, SVG) и импортировать данные. Это будет работать до тех пор, пока вам не нужно рисовать контуры, поскольку, очевидно, AS3 может рисовать только квадратичные Безье, в то время как Illustrator может рисовать / экспортировать только кубические Безье.

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