![]() |
Программное рисование сильно затормаживает скорость ролика
В цикле рисую на экране N квадратиков. Перед рисованием расчитываю несколько параметров каждого квадратика: цвет, координаты, размеры, альфу и тп, затем выполняю такой код:
Код:
layer.clear();Так вот, чем больше N тем заметнее тормозит вывод изображения, при N = 30 на моем п3 1,3 ролик отображается со скоростью примерно 5 кадров в секунду... Если из программы убрать выше приведенный код, но оставить расчет параметров квадратиков, то скорость ролика заметно увеличится, отсюда я могу сделать вывод, что тормозит именно программная отрисовка. Пробовал вместо программной отрисовки сделать один мувиклип с нарисованным в нем квадратиком, а затем с помощью attachMovie продублировать его N раз, но опять же при N = 30 скорость очччень сильно падает... Что посоветуете? Как нарисовать на экране несколько десятков примитивных объектов, да так, чтобы скорость отрисовки была приличной? |
Цитата:
И вообще апгрейд компа решает. я лично адаптирую свой флеш под П4 1.7 Но даже этот слабенький комп превратиться в более мощный, через неделю. Но есть вариант делаеш шейп и несколько дорожек, муторно и гиморно но как не странно помогает. |
Цитата:
Код:
for(i = 1; i <= N; i++)Код:
layer.lineStyle(4, color[1], a[1]);Цитата:
Цитата:
|
Цитата:
2 Код для облегчения можеш сделать рекурсией. |
Цитата:
|
Нет-нет, ни в коем случае не разварачивай цикл в линию, это глупость, бытрее от этого не станет.
Попробуй оптимизировать, посмотри, может чем рисовать каждый квадратик можно сделать заготовку - квадратик и потом ее продублировать сколько надо раз, поменять им цвета задать положение и тд, и не бездумно каждую итерацию все стирать и заново рисовать, а продумать чтобы добавлять или стирать квадратики по одному/несколько по мере необходимости? |
Цитата:
Машина очень слабая. |
А зачем тебе такие быстрые изменения - 50 раз в секунду? потом зачем каждый раз рисовать квадрат? не легче ли менять размеры у отрисованного мува (в котором ты один раз рисуешь квадрат), а цвет через объект Color можно менять.
потом если работаешь под 8 плеер, то можно заменить векторное рисование квадратов на использование класса BitmapData |
Цитата:
Цитата:
Цитата:
|
Дурдом, слепили один раз мув нарисовали всё что нужно, а дальше меням координаты или что там нужно у самого мувика и ничего перерисовывать не нужно
|
Блин, говорю же, с одним мувом все работает нормально, с 5 и 10 мувами – все зашибись. А когда мувов много, от 30 штук, система начинает тормозить. Варианты с апгрейдом компа, уменьшением колва мувов или предварительной прорисовкой не подходят, так как: а) все параметры зависят от действий пользователя и никогда не повторяются; б) возможно количество объектов придется увеличить с 30 до 100-200, и если сейчас есть тормоза на моем п3 1,3, то потом затормозят и самые современные процы.
|
У тебя в мувах что нарисованно? квадраты? так нафиг их перерисовывать постоянно, меняй размеры у мува. потом MovieClip.cacheAsBitmap = true;
Потом для чего нужен такой высокий фрэймрэйт 50? ты еще поставь 100 и удивляйся почему притормаживает. расчитай просто время сколько отдается на исполнение скрипта во фрайме, чтобы перерисовка след кадра произошла без задержки - 1000ms / frameRate (и это в лучшем случае) |
| Часовой пояс GMT +4, время: 05:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.