Загрузка изображения с помощью Loader.loadBytes(byteArray)

Я хотел бы спросить об одной вещи:

Если я создаю Loader и загружаю внешнее изображение по 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

Зачем?

1 ответ

AS3 Loader имеет внутренний анализ, чтобы попытаться сопоставить типы данных с внутренними типами классов. В большинстве случаев это довольно удобно, но синтаксис немного странный.

В вышеприведенном примере вы МОЖЕТЕ преобразовать bytesLoader.content как Bitmap, если хотите.

Изменить (в связи с вопросом "как"):

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);
}

Вы должны быть в состоянии просто использовать его как растровое изображение.

Другие вопросы по тегам