|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Понизить приоритет фоновой загрузки?
Перед открытием локации подкачиваются растровые данные для базовой анимации объектов на локации (условно - 200кб). После открытия локации в фоновом режиме подкачиваются растровые данные для расширенной анимации (приблизительно 700-1000кб). Подкачиваются - это значит, что загружаются изображения (10-20кб каждое) и на их основе создаются массивы битмапдат, которые составляют покадровую анимацию объектов по фазам.
Вопрос - можно ли как-то снизить нагрузку на плеер в момент этой загрузки расширенной анимации? Там, конечно, копейки, но на слабых машинах все равно немного чувствуется. Первая мысль, которая мне приходит в голову - это грузить не непрерывным потоком, а с некоторым таймаутом перед запросом следующего изображения. Например, 1000мс. Вторая мысль - это сделать в подрузчике старт-стопный механизм, отслеживать запуск ресурсозатратных операций и на этот период останавливать подгрузку, а затем возобновлять (можно, конечно, просто на ФПС повеситься, но практика показывает, что это не надежно). ЗЫ. Необходимости подгрузить срочно нет. Есть необходимость подгрузить незаметно. |
|
|||||
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Возможно, тормоза создает больше не загрузка, а раскодирование. Попробовать грузить изображения урллоадером, а раскодировать и создавать битмапы потом.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
Возможно тормоза из-за большого количества одновременных загрузок? Может попробовать грузить небольшими партиями 5-7 штук?
__________________
http://www.chessmax.ru |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Нет, там конвейер, грузим в один поток.
Грузим изображение, когда загрузилось - пишем в битмапу и начинаем следующую загрузку. Насчет раскодирования - не знаю. Я ничего специально не делаю (в смысле, ничего дополнительного не создаю - беру то, что лежит в лоадере): private static function onCurrentImageLoaded(e:Event) : void { var image:Bitmap = Bitmap(loader.content); var bitmapData:BitmapData = image.bitmapData; currentPhaseImages[currentImageIndex] = bitmapData; currentImageIndex++; if (currentImageIndex < objectsForLoading.length) loadNextImage(); else onCurrentPhaseLoaded(); } Последний раз редактировалось mikhailk; 26.04.2012 в 15:34. |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
А собственно, никакой расфасовки-то нет.
Все происходит в той функции, код которой я привел (onCurrentImageLoaded). Когда все изображения фазы загружены, массив currentPhaseImages передается на хранение, а для загрузки следующей фазы создается новый массив. |
|
|||||
ImageDecodingPolicy смотрели?
__________________
...я люблю людей!.. |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
Ну да, у меня стоит по умолчанию ON_LOAD. Можно, конечно, поставить ON_DEMAND, но мне это ничего не даст - он же все равно отработает, когда я полезу в loader.content. Разве что это позволит развести два процесса - загрузки и декодирования... Но если я запущу массовое декодирование - получатся те же тормоза, вид сбоку. |
|
|||||
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Ну я в общем про декодирование писал.
Возможно, есть более подходящее время для тормозов у вас, ну там собсно при открытии локации например.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. Последний раз редактировалось -De-; 26.04.2012 в 16:06. |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
Для меня было идеально, когда вся анимация закачивалась полностью в момент открытия локации. Но, в принципе, всем спасибо. причины понятны. Видимо, просто добавлю таймаут при загрузке, тормоза будут разнесены по времени и не так заметны. |
Часовой пояс GMT +4, время: 20:52. |
|
« Предыдущая тема | Следующая тема » |
|
|