Как оптимизировать частоту кадров в Flash / Actionscript?

Я создаю приложение в ActionScript с использованием Flash-ресурсов, и моя частота кадров становится очень низкой (~ 7 кадров в секунду), когда я пытаюсь отобразить на экране 20+ ресурсов, хотя большинство этих ресурсов являются остановленными фрагментами роликов. Я пробовал установить для .cacheAsBitmap значение true, что немного помогает, но недостаточно. Что еще я могу сделать, чтобы увеличить частоту кадров? Я заметил, что некоторые видеоклипы, кажется, влияют на него больше, чем другие, но я не уверен, как изменить их, чтобы упростить рендеринг.

Спасибо!


person LillyWolf    schedule 07.06.2010    source источник


Ответы (2)


Трудно догадаться, что могло вызвать замедление при таком небольшом количестве ресурсов на экране, но лучше всего проверить наличие утечки памяти или чрезмерного использования оперативной памяти. Чтобы получить хорошее отображение FPS / mem при отладке проекта, я рекомендую статистику MrDoob.

Если в этом нет очевидных виновников, и вам нужно копнуть глубже, лучший инструмент, который я нашел (и использую во всех своих проектах), - это PerformanceTest

person Mark L    schedule 07.06.2010

  1. Пройдите сборку мусора, используйте слабые ссылки на слушателей.
  2. Профилируйте свое приложение на предмет утечек памяти, например для определить, течет ли он. Аналогичные функции есть в Flash Builder, см. Использование профилировщика . Альтернативный открытый исходный код PBLabsProfiler был выпущен всего неделю назад.

По описанию вроде протекает.

person Ain Tohvri    schedule 07.06.2010
comment
Привет спасибо. Я определенно могу использовать профилировщик для поиска утечек памяти (и да, держу пари, что вы правы насчет утечек). Если я исправлю эти проблемы, должна ли повыситься частота кадров? У меня создалось впечатление, что частота кадров в секунду больше связана с визуализацией графических данных в определенный момент времени. Также стоит отметить, что частота кадров в секунду становится низкой, как только я запускаю приложение. - person LillyWolf; 07.06.2010