![]() |
|
Модераторы: SoWa |
![]()
|
|
| Leksey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 12.12.2004 Репутация: нет Всего: 1 |
происходит ли обновление изображения при изменении позиции спрайта?
например мы поменяли x координату, изменения моментально отображаються? А что тогда если у нас куча этих объектов спрайт и они все двигаються? А может было неправильно их рисовать как отдельные спрайты, а нужно было просто у одного спрайты с помощью graphics все вручную делать? собственно ответов на эти вопросы что-то не могу найти в интернете и в книжках. Есть флешка с несколькими многоугольниками - их можно выбирать и перемещать и вращать. так вот после непродолжительного вращения/перемещения флешка все больше "тупит". с чем это может быть связано? |
|||
|
||||
| AlDev |
|
||||||||
|
Опытный идиотъ ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1927 Регистрация: 17.4.2005 Где: Irk, rus Репутация: 10 Всего: 50 |
Это быстрее, чем перерисовать спрайт.
Если нет фильтров, то все достаточно быстро.
Тут лучше распределять. Иначе память перегрузится. Двигать только контейнеры, или двигать по несколько за шаг с использованием интервалов.
Каждый спрайт создает вместе с собой кучу всякого говна, как правило не нужного. Если ты только рисуешь, а не добавляешь к спрайту чайлды, то лучше использовать не Sprite, а Shape. Разделение на спрайты это архитектурный вопрос - естественно что если у тебя мало объектов - все быстрее и память не засирается лишним. Но разобраться и модифицировать - сложнее. Скорее всего: #1: Интервалы #2: Где-то создаются объекты лишние или просто все время создаются объекты. У меня так и не получилось заметить Garbage Collector в действии. Так что советую быть очень внимательным с созданием объектов. |
||||||||
|
|||||||||
| Leksey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 12.12.2004 Репутация: нет Всего: 1 |
Спасибо большое за подробный ответ, но все таки некоторые моменты не совсем понятны.
То что передвинуть быстрее чем перерисовать особенно если casheAsBitmap стоит это мне понятно. Но я передвигаю сразу несколько объектов, и мне хотелось бы чтобы перерисовка произошла один раз после всех изменений позиций, а не при кажом перемещении одного объекта. Можно ли как нибудь запретить обновление, пока я не закончил изменение позиций всех объектов? Sprite насколько я понял отличаеться от Shape только наличием коллекции - заменил на Shape результаты теже. А еще можно поподробнее про интервалы? - я новичек во Флеше и поэтому стока вопросов задаю... Насчет постоянно создающихся объектов. Вот например метод класса Vector:
Как видно здесь сздаеться новый объект - вектор. Поскольку этот метод вызываеться достаточно большое количество раз за перерисовку/пересчет столкновений - это может быть причиной замедления работы? И этот код нужно как то переделать? ( Как же не хватает Value типов и передачи аргументов по ссылке...) |
|||
|
||||
| AlDev |
|
||||
|
Опытный идиотъ ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1927 Регистрация: 17.4.2005 Где: Irk, rus Репутация: 10 Всего: 50 |
Аргументы (кроме базовых типов: Number, uint, int, String, Boolean) всегда передаются по ссылке.
Для базовых типов можно сделать обертки. Аля
afaik нет. Можно распределить вычисления - считать все блоками. При просчете блока - считать следующий блок. Интервалы - постоянный вызов чего-либо через определенный промежуток времени. |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | ActionScript 3 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |