我有一个很大的 JPEG 图像文件。它的尺寸为19000*14000,文件大小约为41M。我正在使用 AIR 3.3 SDK,但加载完成后我看不到舞台上的图像。有谁知道这个问题的原因是什么?
这是我的代码:
protected function button1_clickHandler(event:MouseEvent):void
{
file = new File();
file.addEventListener(Event.SELECT, imageFileHandler);
file.browseForOpen("image file", [new FileFilter("image file","*.jpg;*.jpeg")]);
}
protected function imageFileHandler(event:Event):void
{
fs = new FileStream();
fs.openAsync(file, FileMode.READ);
fs.addEventListener(Event.COMPLETE, bytesComplete);
}
protected function bytesComplete(event:Event):void
{
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoadHandler);
var bytes:ByteArray = new ByteArray();
fs.readBytes(bytes);
loader.loadBytes(bytes);
fs.close();
}
protected function imageLoadHandler(event:Event):void
{
image.source = (loader.content as Bitmap).bitmapData;
}
最佳答案
Flash Player 和 Air 对显示的图像文件大小有限制。如果我没记错的话,是4096*4096。如果您想使用一张巨大的图像,请将其切成更多、更小的图像,分别加载它们,然后将它们一张一张地放置。就像您希望谷歌地图加载整个地球一样。它只加载可见部分。你也应该考虑这一点。
您还可以尝试调整位图数据或包含它的 Sprite 的大小以使图像可见。
关于actionscript-3 - 加载后无法显示很大的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16438772/