![]() |
Как уменьшить нагрузку на процессор, если много объектов
Задача - сделать насыщенный векторной, растровой графикой и звуками фильм (по типу что-то напоминающее презентацию с комментариями) ...
При этом загрузка процессора само собой прямо пропорциональна количеству одновременно обрабатываемых объектов ... Убавить количество объектов на кадр проблематично .. Проблема более-менее решаема, но от скорости воспроизведения очень сильно страдает синхронизация звука .. Отсюда просьба - подскажите основные методы разгрузки количества одновременных событий на кадре .. Пока пробывал такие: 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});P.S. Весь этот код находится внутри обработчика onEnterFrame = function {}... |
Цитата:
Цитата:
|
Цитата:
И как это обойти можно ? И еще - если есть динамическое текстовое поле с изменяющейся прозрачностью, то какого размера его изначально рисовать нужно ? Имет значение или это тоже вектор и от размера не зависит ? Цитата:
А как же тогда можно приаттачить клип именно к событию, которое генерируется кодом onEnterFrame ? Невозможно в принципе ? |
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++; |
Цитата:
Про тормоза: зависит. Я тут тоже на днях парился с этим. Было здоровое динамическое поле. Менял у него прозрачность. Получалось отличное слайдшоу вместо плавной анимации... В результате анимацию убрал. А вообще, поэкспериментируй. Если у тебя небольшие текстовые поля, то сильно тормозить не будет. |
|
больше всего тормозов от прозрачности, особенно если прозрачные объекты движутся. Так что или прозрачность или быстрота.
|
| Часовой пояс GMT +4, время: 15:32. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.