Использование Bitmap и BimapData для загрузки фонового изображения во Flash CS5? - PullRequest
0 голосов
/ 09 ноября 2010

Я делаю флэш-фильм и хочу загрузить фоновое изображение в SWF-файл и нарисовать его на сцене, используя классы Bitmap и BitmapData.

Правильно ли я подхожу к этому? Какой код передает изображение из загрузчика в BitmapData? Кроме того, как я могу получить изображение для показа в фоновом режиме?

Я никогда не понимал метафору BitmapData / Bitmap, объяснения, примеры кода и учебные ссылки приветствуются.

1 Ответ

1 голос
/ 09 ноября 2010

Класс Loader имеет свойство content , через которое вы будете получать доступ к загруженному контенту (будь то изображение или файл SWF).

Еслипосле загрузки изображения, когда загрузка будет завершена, вы можете получить доступ к экземпляру Bitmap через свойство content , но вам необходимо выполнить приведение, так как содержимое является DisplayObject.

, например,

function onImageLoader(event:Event):void{
   trace(Bitmap(myImageLoader.content));
}

Относительно BitmapData / Bitmap:

  • BitmapData в основном содержит информацию о пикселях (сколько пикселей, какого цвета или каждого и т. Д.) И позволяетвам манипулировать ими.Это все, что BitmapData делает, однако, оно не может быть отображено, так как это не DisplayObject
  • Bitmap , с другой стороны, это DisplayObject, поэтому его можно добавить в список отображения,и т. д. Все Битовые экземпляры содержат экземпляр BitmapData, доступный через свойство bitmapData .

Короче говоря, вы используете экземпляр Bitmap для добавления изображения всписок отображения, и вы используете его свойство bitmapData для доступа к пикселям и манипулирования ими.

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

Вот краткий пример того, что я имею в виду, используя Bitmap и BitmapData:

//this would be your image Loader's complete handler
function imageLoaded(event:Event):void{
   var bitmap:Bitmap = Bitmap(imageLoader.content);
   var data:BitmapData = bitmap.bitmapData;
   trace("first pixel's colour is " + data.getPixel(0,0).toString(16));
}

HTH

...