Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Что лучше: программная отрисовка или объект в swc-библиотеке? (http://www.flasher.ru/forum/showthread.php?t=138072)

КорДум 29.03.2010 20:13

Что лучше: программная отрисовка или объект в swc-библиотеке?
 
Здравствуйте. И снова хотелось бы задать вопросик, касаемый оптимизации. Что быстрее сделать флешу: перетащить из swc-библиотеки объект, скажем, обычный кружок с двухцветным радиальным градиентом, или же отрисовать его программным способом? И второй вопрос вдогонку: что из этих способов будет меньше занимать памяти?

NBVestal 29.03.2010 20:40

Я думаю, что объект, отрисованный программно, кушает гораздо меньше ресурсов, ибо в нём находится только тот минимум, который Вами написан. Да и вообще, с ними удобно маневрировать. Лично я, например, рисую круги не с помощью функции drawcirle, а с применением цикла и параметрических уравнений - так и поменять что-то в нём легко, и не нужно дополнительных импортов.

КорДум 29.03.2010 20:47

Циклов и параметрических уравнений? То есть, если приблизить камеру и поглядеть на ваш круг, будет видно, что это многоугольник? Хм, вообще да, лишних импортов нет, но я не уверен, что быстрее выполняется цикл, чем drawCircle.

NBVestal 29.03.2010 21:04

Цитата:

Сообщение от КорДум (Сообщение 896634)
Циклов и параметрических уравнений? То есть, если приблизить камеру и поглядеть на ваш круг, будет видно, что это многоугольник? Хм, вообще да, лишних импортов нет, но я не уверен, что быстрее выполняется цикл, чем drawCircle.

Ну, я лично сколько не приближал камеру, ни разу не видел "многоугольности" в таких кругах. Особенно, если сделать контур потолще) А вообще, я думаю, что drawcircle раотает по похожему принципу.
И цикл то там мгновенный, можно сказать - пробежаться по всем углам от 0 до 360 градусов - доли секунды. А угловатости и не будет видно, потому, что все точки крайне близко друг к другу.

КорДум 29.03.2010 21:14

И еще, я вот только подумал... если я правильно понял, что циклическая отрисовка кругов представляет собой отрисовку кусочков линий, последовательно соединенных друг с другом, так? Так сколько же таких объектов в одном таком круге и сколько они занимают памяти? Круг, отрисованный с помощью drawCircle представляет собой один простой векторный примитив. Разве не так?

NBVestal 29.03.2010 21:22

Да, это и есть отрисовка линий, которые соединяются между собой...но ведь рисуется это всё в одном и том же спрайте, поэтому количество объектов никак не прибавляется, по логике) Линия - это ведь не объект, на неё не создашь ссылку и не запишешь в переменную...
А как рисуется круг с помощью drawCircle честно, не знаю, это ведомо лишь тем, кто разрабатывал язык) Но математическая логика подсказывает, что он рисовался именно так... Хотя, возможно использовать полярные координаты вместо декартовых

dimarik 29.03.2010 21:23

Цитата:

Сообщение от NBVestal (Сообщение 896629)
Да и вообще, с ними удобно маневрировать.

Пока дело ограничивается кругами, Вы забыли добавить.

КорДум 29.03.2010 21:31

Хм, и правда. Хотя черт знает, может где-то точек больше, а где-то меньше. И вообще, если рисовать в спрайте drawCircle, не используя Shape, то ничего импортировать и не нужно. Спасибо, я приму это к сведению, но вопрос мой немного не о том)

Zebestov 29.03.2010 22:46

по самому первому вопросу — быстрее "перетащить из swc-библиотеки объект"

GentleFLASH 29.03.2010 23:08

КорДум, почему бы вам не провести тестирование, хотя бы с этими кругами, собственно? По-описанию дел на полчаса-час. Потом бы поделились результатами ;)


Часовой пояс GMT +4, время: 06:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.