![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+4 18.09.08]
Регистрация: May 2006
Сообщений: 79
|
Я только начал осваивать АС3. Прошу помочь с трюками касательно производительности отображения.
Задача - нарисовать узоры. очень детализированные узоры, очень много, с анимацией) Алгоритм таков: -генерируются объекты деревьев и их веток. Каждое дерево и ветка состоят из кусочков, пускай это будут точки для простоты. -затем отрисовываю по 10 кусков каждого имеющегося дерева и ветки. -в процессе отрисовки генерятся новые деревья. Мое решение: Каждый сет (10 кусков отдельно взятой ветки) я рисую в шейп. Шейп addChild'ю к Sprite. И на каждый ENTER_FRAME отрисовываю Sprite. Получается довольно медленно. Я делаю что-то криво? Есть ли возможность ускорить процесс? Возможно правильнее работать с BitmapData? Спасибо |
|
|||||
|
Цитата:
я не знаю конечно вашей проблемы, но думаю вам бы стоило проследить и выяснить что можно удалить из какогото обьекта, возможно отписать от события или поставить определенные условия чтоб лишние действия не производились лишний раз, или если что то вы удаляете то потрудится обязательно отписать жит обьекты от слушателей соыбтий и ссылки приравнять к нулю. Изучить подробнее математическию модель, какая никакая думаю она у вас есть, избавиться от лишних вычислений и так далее. Оптимизация это исскуство, нужно досканально изучить свой проект. Посмотрите возможно вы где то через чур что то усложнили. пс. я не претендую на место мастера оптимизации ) |
|
|||||
|
[+4 18.09.08]
Регистрация: May 2006
Сообщений: 79
|
Спасибо.
Интересует конкретика работы с графикой. |
|
|||||
|
Приветсвую всех. У меня схожая проблема (возможно ее обсуждение поможет автору вопроса тоже ): в ролике создается большое количество объектов Shape, они помещаются в контейнер (при этом есть необходимость перемещать контейнер). Запуск профайлера показал что больше всего времени при перетаскивании всех объектов тратиться на обработку [mouseEvent]. (двигаю контейнер по Event.ENTER_FRAME путем изменения координат спрайта) . Более того при увеличении шейпов простое движение мышки (над роликом) приводит к заметной нагрузке процессора. Т.о. я пришел к выводу что все шейпы "следят" за мышкой.
Возможные варианты решения проблемы: 1) Замена на BitMap (только при перетаскивании, так как необходимо оставить возможность удаления шейпов по одному) 2) Удаление из списка отображения тех шейпов что вышли за пределы экрана. 3) Замена объектов собственным классом без "лишних" листенеров. Поделитесь мыслями как в моей ситуации на ваш взгляд поступить лучше (как сделали бы вы) . возможно ли просто отписать шейпы от неиспользуемых событий? (Этот вопрос отвалился ->mouseChildren,mouseEnabled ) - изменяем на false для контейнера с шейпами.P.S. Прошу прощения что немного сумбурно, если что - могу конкретизировать и/или привести фрагменты кода. Заранее всем спасибо. Последний раз редактировалось Karmodi; 15.08.2008 в 10:07. |
|
|||||
|
[+4 18.09.08]
Регистрация: May 2006
Сообщений: 79
|
Был проведен эксперимент:
на рабочую область 900х900 создаем битмап затем на каждый кадр: в 10.000-ом цикле ставим цветной пиксель. после цикла прописовываем битмап. таким образом получаем шум. довольно шустрый, надо сказать шум. теперь перед прорисовкой битмапа вставляем строчку - создание нового шейпа. просто создание пустого шейпа, только и всего и смотрим как изменилась скорость прорисовки. |
|
|||||
|
кстати делали карту города
http:/karta.kirov.ru там я отрисовывал каждый раз кусочки карты. и двигал ее.. так вот когда отрисовываем по матрице с большим масштабом все равно работает не так быстно как хотелось бы... то есть что бы отрисовать битмапу с большим масштабом требуется заметное количество времени может быть кто то решил трабл... в частности такой: Есть обхект который необходимо перетаскивать... влево вправо... ну и все такое, так вот: когда масштаб меньше 10 то работает все замечательно в какой то момент масштабирования начинаются тормоза кто нить сталкивался с проблеммой ? как решить ? на счет отрисовки куска карты не вариант, я уже так делал все равно тормозит (хотя может быть не так сильно однако может быть есть решение которое ваще проблемму решит ?) http://flyagaric.hop.ru |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:15. |
|
|
« Предыдущая тема | Следующая тема » |
|
|