actionscript-3 - 加载后无法显示很大的图像

标签 actionscript-3 air jpeg bitmapdata

我有一个很大的 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/

相关文章:

javascript - 如何在浏览器中动态更改 JPEG 对比度和缩放级别

actionscript-3 - if ( object != null ) 而不是 AS3 中的 if ( object )

actionscript-3 - 闪存CS4/AS3 : differing behavior between console and textarea for printing UTF-16 characters

ios - 在我的AIR应用(IOS)中为准备好的youtube视频违反安全沙箱的行为

flash - AIR renderMode GPU与renderMode Direct

java - 如何将图像转换为 postscript 形状

flash - 带有 Accept header : gets put in request body, 的 URLRequest 不会覆盖默认请求 header

flash - ActionScript 3 : How to get host name from URL?

android - 是否可以在 AIR 中将 Android webview 显示为 native 扩展?

html - 大写的 "JPG"扩展与小写的 "jpg"不同?