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

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

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

Регистрация: Aug 2005
Сообщений: 56
По умолчанию Как уменьшить нагрузку на процессор, если много объектов

Задача - сделать насыщенный векторной, растровой графикой и звуками фильм (по типу что-то напоминающее презентацию с комментариями) ...
При этом загрузка процессора само собой прямо пропорциональна количеству одновременно обрабатываемых объектов ...
Убавить количество объектов на кадр проблематично ..
Проблема более-менее решаема, но от скорости воспроизведения очень сильно страдает синхронизация звука ..
Отсюда просьба - подскажите основные методы разгрузки количества одновременных событий на кадре ..
Пока пробывал такие:
1. Приаттачивал клипы из библиотеки непосредственно перед их использованием в мувике и после этого сразу remove
2. Если клип зачем-то нужен - делал его невидимым ...
3. Ставил в начало скрипта _quality = "Autolow", что вроде бы автоматически подстраивает скорость воспроизведения к мощности компьютера (правда всегда с запасом, т.е. ближе к low)
4. Резал звук на мелкие фрагменты ..
Одним словом - пока все довольно хлопотно и неэффективно.
Еще интересует какие из свойств особенно нагружают процессор.
У меня много переходов _alpha и анимаций по координатам ..
Может есть менее рессурсоемкие методы ?
И еще - не могу победить элементарный скрипт:
Нужно, чтоб мувик из библиотеки поместился на _root как непрозрачный и постепенно набрал прозрачность.
Код:
_root.attachMovie("text_1", "text_1", 0, {_x:Stage.width/2, _y:Stage.height/2, _width:400, _height:300, _alpha:10});
if (text_1._alpha<100) {
			text_1._alpha++;
		}
Так вот мувик появляется, но прозрачность не растет ..
P.S. Весь этот код находится внутри обработчика onEnterFrame = function {}...


Последний раз редактировалось Smirnoff; 11.09.2005 в 22:25.
Старый 11.09.2005, 23:45
kost@ вне форума Посмотреть профиль Отправить личное сообщение для kost@ Посетить домашнюю страницу kost@ Найти все сообщения от kost@
  № 2  
Ответить с цитированием
kost@
[+ 1.7 - 04.02.2006]
 
Аватар для kost@

Регистрация: Jul 2005
Адрес: ПТЗ
Сообщений: 313
Отправить сообщение для kost@ с помощью ICQ
Цитата:
Сообщение от Smirnoff
Еще интересует какие из свойств особенно нагружают процессор.У меня много переходов _alpha...
Попробуй сделать так: одну картинку (растровую) размером 800х600 положи поверх другой такой же и меняй прозрачность первой с помощью onEnterFrame... и ты офигеешь, как начнет тормозить твоя презентация от такой казалось бы простой анимации! Если есть - убирай!
Цитата:
Сообщение от Smirnoff
И еще - не могу победить элементарный скрипт
У тебя каждый раз при обработке onEnterFrame происходит аттач? и ты еще удивляешься, почему не работает альфа? Делай аттач один раз вне кода обработчика onEnterFrame.

Старый 12.09.2005, 06:28
Smirnoff вне форума Посмотреть профиль Отправить личное сообщение для Smirnoff Найти все сообщения от Smirnoff
  № 3  
Ответить с цитированием
Smirnoff

Регистрация: Aug 2005
Сообщений: 56
Цитата:
Сообщение от kost@
Попробуй сделать так: одну картинку (растровую) размером 800х600 положи поверх другой такой же и меняй прозрачность первой с помощью onEnterFrame... и ты офигеешь, как начнет тормозить твоя презентация от такой казалось бы простой анимации! Если есть - убирай!
Есть такое дело, правда картинки поменьше ...
И как это обойти можно ?
И еще - если есть динамическое текстовое поле с изменяющейся прозрачностью, то какого размера его изначально рисовать нужно ?
Имет значение или это тоже вектор и от размера не зависит ?

Цитата:
Сообщение от kost@
У тебя каждый раз при обработке onEnterFrame происходит аттач? и ты еще удивляешься, почему не работает альфа? Делай аттач один раз вне кода обработчика onEnterFrame.
Точно ..
А как же тогда можно приаттачить клип именно к событию, которое генерируется кодом onEnterFrame ?
Невозможно в принципе ?

Старый 12.09.2005, 11:06
Dimchansky вне форума Посмотреть профиль Отправить личное сообщение для Dimchansky Посетить домашнюю страницу Dimchansky Найти все сообщения от Dimchansky
  № 4  
Ответить с цитированием
Dimchansky

Регистрация: Jul 2005
Сообщений: 225
Отправить сообщение для Dimchansky с помощью ICQ
1. Если мувик тебе не нужен, то лучше не прятать его _visible=0, т.к. флэш все равно его просчитывает. Имхо, нормальный вариант - attach/remove, или, на худой конец, изменять координаты мувика так, чтобы он уходил за пределы видимости - флэш его не обрабатывает.
2. Там, где это возможно, избавляться от анимированного растра.
3. Сглаживать вектор (особенно трассированый).
4. Если есть возможность программно анимировать клип, пользуясь координатами в массиве, а не вычисляя координаты по формуле - отдай предпочтение массиву. Если прозрачность можно сделать методами флэша (твин), а не скриптом - делай.

>А как же тогда можно приаттачить клип именно к событию, которое генерируется кодом onEnterFrame ?
Невозможно в принципе ?

Проверяй в onEnterFrame наличие твоего объекта. Ну хотя бы так:
if (typeof(text_1) == "undefined")
_root.attachMovie("text_1", "text_1", 0, {_x:Stage.width/2, _y:Stage.height/2, _width:400, _height:300, _alpha:10});
else if (text_1._alpha < 100) text_1._alpha++;

Старый 12.09.2005, 11:21
kost@ вне форума Посмотреть профиль Отправить личное сообщение для kost@ Посетить домашнюю страницу kost@ Найти все сообщения от kost@
  № 5  
Ответить с цитированием
kost@
[+ 1.7 - 04.02.2006]
 
Аватар для kost@

Регистрация: Jul 2005
Адрес: ПТЗ
Сообщений: 313
Отправить сообщение для kost@ с помощью ICQ
Цитата:
Сообщение от Smirnoff
если есть динамическое текстовое поле с изменяющейся прозрачностью, то какого размера его изначально рисовать нужно? Имет значение или это тоже вектор и от размера не зависит?
Про размер: делай для динамического поля "autosize".
Про тормоза: зависит. Я тут тоже на днях парился с этим. Было здоровое динамическое поле. Менял у него прозрачность. Получалось отличное слайдшоу вместо плавной анимации... В результате анимацию убрал.
А вообще, поэкспериментируй. Если у тебя небольшие текстовые поля, то сильно тормозить не будет.

Старый 12.09.2005, 11:35
Samodelkin вне форума Посмотреть профиль Отправить личное сообщение для Samodelkin Найти все сообщения от Samodelkin
  № 6  
Ответить с цитированием
Samodelkin

Регистрация: Jul 2005
Адрес: Москва
Сообщений: 452
Отправить сообщение для Samodelkin с помощью ICQ
Если кто еще не видел.

http://www.initclip.com/articles/0000004/

Старый 12.09.2005, 11:51
shalun вне форума Посмотреть профиль Отправить личное сообщение для shalun Найти все сообщения от shalun
  № 7  
Ответить с цитированием
shalun

Регистрация: Aug 2005
Адрес: exSaratov
Сообщений: 55
больше всего тормозов от прозрачности, особенно если прозрачные объекты движутся. Так что или прозрачность или быстрота.

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

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

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


 


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


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