ActionScript - BeginBitmapFill с активом библиотеки BitmapData?

Я импортировал ресурс изображения (Background.jpg) в свою библиотеку Flash CS5 и экспортировал его в ActionScript как класс Bitmap с базовым типом BitmapData.

следующий код возвращает следующую ошибку:

backgroundTexture = new Shape();
backgroundTexture.graphics.beginBitmapFill(Background);
backgroundTexture.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
backgroundTexture.graphics.endFill();

1067: Неявное приведение значения типа Class к несвязанному типу flash.display: BitmapData.

введите описание изображения здесь

так в чем же ошибка?


person Chunky Chunk    schedule 14.03.2011    source источник


Ответы (2)


Вам просто нужен экземпляр объекта Background BitmapData:

backgroundTexture.graphics.beginBitmapFill(new Background());

Background - это ссылка на класс. new Background() создает экземпляр класса.

person zzzzBov    schedule 14.03.2011
comment
вау, не могу поверить, что не осознавал этого ... как неловко. спасибо zzzBov. - person Chunky Chunk; 14.03.2011
comment
@ TheDarkIn1978, такое случается с лучшими из нас. - person zzzzBov; 14.03.2011

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

var background:BitmapAsset = new Background() as BitmapAsset;
backgroundTexture.graphics.beginBitmapFill(background.bitmapData);

Предполагается, что ваш пользовательский интерфейс генерирует следующий код ActionScript или его эквивалент:

[Embed(source="Background.jpg")]
public var Background:Class;

Видеть:

person Michael Brewer-Davis    schedule 14.03.2011