Дубликат изображения с Haxe

Моя цель - сделать широкую карту из одного квадратного изображения. Используя ActionScript 3, решение состоит в том, чтобы просто создать новое изображение Bitmap из загрузчика:

var loader:Loader = new Loader();
loader.load(new URLRequest("xyz.png")); 
this.addChild(loader);  

var duplicationBitmap:Bitmap = new Bitmap(Bitmap(loader.content).bitmapData);

К сожалению, Haxe API не позволяет этого сделать. Я не могу получить bitmapData из содержимого загрузчика…

У кого-нибудь есть ключ к разгадке? Спасибо.


person Johnny Oin    schedule 23.03.2010    source источник


Ответы (3)


API тот же самый, поэтому я предполагаю, что проблема в том, как вы пытаетесь выполнить приведение; попробуйте использовать:

var duplicationBitmap= new Bitmap(cast(loader.content, Bitmap).bitmapData);
person Franco Ponticelli    schedule 23.03.2010

Что значит API этого не позволяет? Посмотрев на это:

http://haxe.org/api/flash9/display/loader http://haxe.org/api/flash9/display/bitmap

Кажется, вы сможете перенести этот код?

Вы получаете ошибку компилятора?

J

person Juan Delgado    schedule 23.03.2010
comment
выложил одновременно, согласен :) - person Theo.T; 23.03.2010
comment
Я получаю flash.display. # Растровое изображение нельзя назвать ошибкой. Я имею в виду, что loader.content - это DisplayObject, у которого нет атрибута bitmapData ... - person Johnny Oin; 23.03.2010

Это действительно странно, Bitmap исходит из playerglobal.swc и не должен иметь отношения к любому специфическому для Haxe "API". Разве вы не пытаетесь получить доступ к loader.content, пока контент еще не загружен (т.е. пример выше).

person Theo.T    schedule 23.03.2010
comment
Я попытался использовать прослушиватель, который создает duplicationBitmap только после завершения загрузки изображения, но у меня такая же ошибка: flash.display. # Bitmap не может быть вызван - person Johnny Oin; 23.03.2010