Loader.loadBytes(byteArray)によってイメージをロードしています。

私は1つの事について尋ねるのが好きです:

ローダーを作成してURLRequestで外部画像を読み込むと、結果が悪い:

loader.content is Bitmap
loader.content.bitmapData is BitmapData

しかし、Loader.loadBytes(ImageBytes)を使用すると、ImageBytesがloader.contentLoaderInfo.bytesであっても結果が異なります。

bytesLoader.content is MovieClip
bytesLoader.content.getChildAt(0) is Bitmap
bytesLoader.content.getChildAt(0).bitmapData is BitmapData

どうして ?

ベストアンサー

AS3ローダーには、内部クラス型にデータ型を試して照合するための内部解析機能があります。ほとんどの場合、かなり便利ですが、構文はちょっと変わっています。

上の例では、むしろbytesLoader.contentをビットマップとしてキャストできます。

編集(「方法」の質問を参照):

ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, getImage);

ldr.load ( new URLRequest ( IMAGE_URL ) );

function getImage (e:Event):void {
    var bmp:Bitmap = ldr.content as Bitmap;
    addChild (bmp);
}

単純にビットマップとしてキャストできます。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です