Flash加载图像内存大小

时间:2013-10-12 17:38:58

标签: actionscript-3 loader

我有这个代码只需加载图像并在flash as3中显示。

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();
        }

capture.jpg有234KB。

问题是加载System.totalMmemory后增加他的大小超过1Mb

跟踪:加载前后

17.391Mb
18.746Mb

似乎是flash加载,解压缩并将图像存储为原始数据。

有没有办法在加载后将图像保持原始大小? 谢谢!

2 个答案:

答案 0 :(得分:4)

不,没有办法让图像保持原始尺寸。 Flash或任何其他图形环境必须将图像解码为原始数据以显示它。

解决问题的唯一方法是在不再需要图像后释放内存,只加载需要显示的图像。

答案 1 :(得分:0)

我对此可能是对或错,但这是我理解的方式: jpg是一种压缩格式,当加载完成后,Flash或任何网页都必须解压缩内存中的jpg。 另一方面,gif没有压缩,因此有时可能是较大的初始尺寸,但不会发生减压。尝试将资源加载为gif(可能不是连续色调图像的理想选择)并查看跟踪输出是否保持不变。