Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.08.2006, 19:54
alkonaft вне форума Посмотреть профиль Отправить личное сообщение для alkonaft Найти все сообщения от alkonaft
  № 1  
Ответить с цитированием
alkonaft
 
Аватар для alkonaft

Регистрация: Jan 2006
Сообщений: 144
Цитата:
Сообщение от Огнеметчик
В цикле рисую на экране 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]);			
}
Координаты каждого квадратика меняются по 50 раз в секунду, и 50 раз в секунду слой (слой - это простой мувиклип) очищается и на нем заново рисуется N квадратиков с новыми координатами.

Так вот, чем больше N тем заметнее тормозит вывод изображения, при N = 30 на моем п3 1,3 ролик отображается со скоростью примерно 5 кадров в секунду... Если из программы убрать выше приведенный код, но оставить расчет параметров квадратиков, то скорость ролика заметно увеличится, отсюда я могу сделать вывод, что тормозит именно программная отрисовка.

Пробовал вместо программной отрисовки сделать один мувиклип с нарисованным в нем квадратиком, а затем с помощью attachMovie продублировать его N раз, но опять же при N = 30 скорость очччень сильно падает...

Что посоветуете? Как нарисовать на экране несколько десятков примитивных объектов, да так, чтобы скорость отрисовки была приличной?
совет прост убей всякие ненужные циклы.
И вообще апгрейд компа решает.
я лично адаптирую свой флеш под П4 1.7
Но даже этот слабенький комп превратиться в более мощный, через неделю.

Но есть вариант делаеш шейп и несколько дорожек, муторно и гиморно но как не странно помогает.
__________________
Что за опен соурс без водки?

Старый 05.08.2006, 23:00
Огнеметчик вне форума Посмотреть профиль Отправить личное сообщение для Огнеметчик Найти все сообщения от Огнеметчик
  № 2  
Ответить с цитированием
Огнеметчик

Регистрация: 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]);
я получу прирост производительности? Сейчас попробую, хотя странно всё это...
Цитата:
И вообще апгрейд компа решает.
я лично адаптирую свой флеш под П4 1.7
Дык апгрейд компа не проблема, просто я боюсь что потенциальные пользователи тоже сидят с таким древним железом как у меня и хочется чтобы и у них все летало...
Цитата:
Но есть вариант делаеш шейп и несколько дорожек, муторно и гиморно но как не странно помогает.
Ой... Я чего-то этой фразы не понял, можешь поподробнее описать процесс? Спасибо.

Старый 05.08.2006, 23:25
alkonaft вне форума Посмотреть профиль Отправить личное сообщение для alkonaft Найти все сообщения от alkonaft
  № 3  
Ответить с цитированием
alkonaft
 
Аватар для alkonaft

Регистрация: Jan 2006
Сообщений: 144
Цитата:
Сообщение от Огнеметчик
Хммм... То есть если заменить код
Код:
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]);
я получу прирост производительности? Сейчас попробую, хотя странно всё это...

Дык апгрейд компа не проблема, просто я боюсь что потенциальные пользователи тоже сидят с таким древним железом как у меня и хочется чтобы и у них все летало...

Ой... Я чего-то этой фразы не понял, можешь поподробнее описать процесс? Спасибо.
1 а почему всё это не нарисовать в ручную?
2 Код для облегчения можеш сделать рекурсией.
__________________
Что за опен соурс без водки?

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:44.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.