| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > ActionScript 3 > Как правильно рисовать быстро |
| Автор: Leksey 7.9.2007, 01:56 |
| происходит ли обновление изображения при изменении позиции спрайта? например мы поменяли x координату, изменения моментально отображаються? А что тогда если у нас куча этих объектов спрайт и они все двигаються? А может было неправильно их рисовать как отдельные спрайты, а нужно было просто у одного спрайты с помощью graphics все вручную делать? собственно ответов на эти вопросы что-то не могу найти в интернете и в книжках. Есть флешка с несколькими многоугольниками - их можно выбирать и перемещать и вращать. так вот после непродолжительного вращения/перемещения флешка все больше "тупит". с чем это может быть связано? |
| Автор: Leksey 7.9.2007, 13:23 | ||
| Спасибо большое за подробный ответ, но все таки некоторые моменты не совсем понятны. То что передвинуть быстрее чем перерисовать особенно если casheAsBitmap стоит это мне понятно. Но я передвигаю сразу несколько объектов, и мне хотелось бы чтобы перерисовка произошла один раз после всех изменений позиций, а не при кажом перемещении одного объекта. Можно ли как нибудь запретить обновление, пока я не закончил изменение позиций всех объектов? Sprite насколько я понял отличаеться от Shape только наличием коллекции - заменил на Shape результаты теже. А еще можно поподробнее про интервалы? - я новичек во Флеше и поэтому стока вопросов задаю... Насчет постоянно создающихся объектов. Вот например метод класса Vector:
Как видно здесь сздаеться новый объект - вектор. Поскольку этот метод вызываеться достаточно большое количество раз за перерисовку/пересчет столкновений - это может быть причиной замедления работы? И этот код нужно как то переделать? ( Как же не хватает Value типов и передачи аргументов по ссылке...) |
| Автор: AlDev 10.9.2007, 11:34 | ||||
| Аргументы (кроме базовых типов: Number, uint, int, String, Boolean) всегда передаются по ссылке. Для базовых типов можно сделать обертки. Аля
afaik нет. Можно распределить вычисления - считать все блоками. При просчете блока - считать следующий блок. Интервалы - постоянный вызов чего-либо через определенный промежуток времени. |