2

大きな 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;
}
4

2 に答える 2

1

flash player と air には、表示する画像ファイルのサイズに制限があります。私の記憶が正しければ、4096*4096 です。巨大な画像を使用する場合は、複数の小さな画像にスライスし、個別に読み込み、1 つずつ配置します。グーグルマップに地球全体をロードさせたいようなものです。表示されている部分のみをロードするだけです。それも考慮する必要があります。

ビットマップデータまたはそれを含むスプライトのサイズを変更して、画像を表示することもできます。

于 2013-05-08T11:12:29.427 に答える