0

我有这段代码可以简单地加载图像并将其显示在 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

看起来像闪存加载,解压缩并将图像存储为原始数据。

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

4

2 回答 2

4

不,没有办法保持图像的原始大小。Flash 或任何其他图形环境必须将图像解码为原始数据才能显示。

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

于 2013-10-13T00:37:44.287 回答
0

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

于 2013-10-12T19:29:10.217 回答