2013-10-12 3 views
0

У меня есть этот код, чтобы просто загрузить изображение и отобразить его во флэш-памяти as3.Размер загружаемой Flash-памяти

function mem(evt:*=null){ 
    trace(Number(System.totalMemory/1024/1024).toFixed(3) + 'Mb') 
} 
mem(); 
var loader:URLLoader = new URLLoader(); 
loader.addEventListener(Event.COMPLETE, onloaded) 
loader.load(new URLRequest("../capture.jpg")) 
addChild(loader); 
function onloaded(e:Event):void { 
      mem(); 
     } 

The capture.jpg имеет 234KB.

Проблема заключается в том, что после загрузки System.totalMmemory увеличить его размер с более 1Мб

Следы: до и после загрузки

17.391Mb 
18.746Mb 

Кажется, флэш-нагрузки, распаковывать и сохранить изображение в качестве сырья данные.

Есть ли способ сохранить изображение при его первоначальном размере после загрузки? Спасибо!

ответ

0

Возможно, это было правильно или неправильно, но вот как я это понимаю: jpg - это сжатый формат, и когда загрузка завершена, Flash или, если на то пошло, любая веб-страница, необходимо распаковать jpg в Память. С другой стороны, gif не имеет сжатия, поэтому иногда может быть больший начальный размер, но декомпрессии не происходит. Попробуйте загрузить объект в виде gif (возможно, он не идеален для непрерывных тоновых изображений) и проверьте, остались ли ваши выходы трассировки.

+0

GIF также имеет компрессию. http://en.wikipedia.org/wiki/Graphics_Interchange_Format – Pier

4

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

Единственный способ решить вашу проблему - освободить память, как только вам не понадобится изображение, и загружать только изображения, которые вам нужно показать.

Смежные вопросы