![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Jun 2006
Сообщений: 55
|
В цикле рисую на экране N квадратиков. Перед рисованием расчитываю несколько параметров каждого квадратика: цвет, координаты, размеры, альфу и тп, затем выполняю такой код:
layer.clear();
for(i = 1; i <= N; i++)
{
layer.lineStyle(4, color[i], a[i]);
layer.moveTo(X[i], Y[i]);
layer.lineTo(X[i] + R[i], Y[i] + R[i]);
layer.lineTo(X[i] - R[i], Y[i] + R[i]);
layer.lineTo(X[i] - R[i], Y[i]);
}
Так вот, чем больше N тем заметнее тормозит вывод изображения, при N = 30 на моем п3 1,3 ролик отображается со скоростью примерно 5 кадров в секунду... Если из программы убрать выше приведенный код, но оставить расчет параметров квадратиков, то скорость ролика заметно увеличится, отсюда я могу сделать вывод, что тормозит именно программная отрисовка. Пробовал вместо программной отрисовки сделать один мувиклип с нарисованным в нем квадратиком, а затем с помощью attachMovie продублировать его N раз, но опять же при N = 30 скорость очччень сильно падает... Что посоветуете? Как нарисовать на экране несколько десятков примитивных объектов, да так, чтобы скорость отрисовки была приличной? |
|
|||||
|
Регистрация: Jan 2006
Сообщений: 144
|
Цитата:
И вообще апгрейд компа решает. я лично адаптирую свой флеш под П4 1.7 Но даже этот слабенький комп превратиться в более мощный, через неделю. Но есть вариант делаеш шейп и несколько дорожек, муторно и гиморно но как не странно помогает.
__________________
Что за опен соурс без водки? |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 55
|
Цитата:
for(i = 1; i <= N; i++)
{
layer.lineStyle(4, color[i], a[i]);
layer.moveTo(X[i], Y[i]);
layer.lineTo(X[i] + R[i], Y[i] + R[i]);
layer.lineTo(X[i] - R[i], Y[i] + R[i]);
layer.lineTo(X[i] - R[i], Y[i]);
}
layer.lineStyle(4, color[1], a[1]); layer.moveTo(X[1], Y[1]); layer.lineTo(X[1] + R[1], Y[1] + R[1]); layer.lineTo(X[1] - R[1], Y[1] + R[1]); layer.lineTo(X[1] - R[1], Y[1]); layer.lineStyle(4, color[2], a[2]); layer.moveTo(X[2], Y[2]); layer.lineTo(X[2] + R[2], Y[2] + R[2]); layer.lineTo(X[2] - R[2], Y[2] + R[2]); layer.lineTo(X[2] - R[2], Y[2]); ............................................ layer.lineStyle(4, color[30], a[30]); layer.moveTo(X[30], Y[30]); layer.lineTo(X[30] + R[30], Y[30] + R[30]); layer.lineTo(X[30] - R[30], Y[30] + R[30]); layer.lineTo(X[30] - R[30], Y[30]); Цитата:
Цитата:
|
|
|||||
|
Регистрация: Jan 2006
Сообщений: 144
|
Цитата:
2 Код для облегчения можеш сделать рекурсией.
__________________
Что за опен соурс без водки? |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 55
|
Цитата:
|
|
|||||
|
Регистрация: Aug 2004
Адрес: Moscow, Jerusalem
Сообщений: 26
|
Нет-нет, ни в коем случае не разварачивай цикл в линию, это глупость, бытрее от этого не станет.
Попробуй оптимизировать, посмотри, может чем рисовать каждый квадратик можно сделать заготовку - квадратик и потом ее продублировать сколько надо раз, поменять им цвета задать положение и тд, и не бездумно каждую итерацию все стирать и заново рисовать, а продумать чтобы добавлять или стирать квадратики по одному/несколько по мере необходимости? |
|
|||||
|
Регистрация: Jan 2006
Сообщений: 144
|
Цитата:
Машина очень слабая.
__________________
Что за опен соурс без водки? |
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
А зачем тебе такие быстрые изменения - 50 раз в секунду? потом зачем каждый раз рисовать квадрат? не легче ли менять размеры у отрисованного мува (в котором ты один раз рисуешь квадрат), а цвет через объект Color можно менять.
потом если работаешь под 8 плеер, то можно заменить векторное рисование квадратов на использование класса BitmapData |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 55
|
Цитата:
Цитата:
Цитата:
|
|
|||||
|
Ветеран форума
|
Дурдом, слепили один раз мув нарисовали всё что нужно, а дальше меням координаты или что там нужно у самого мувика и ничего перерисовывать не нужно
__________________
BestMasterиZация |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|