0

我正在制作 Flash 电影,我想将背景图像加载到我的 SWF 中,并使用 Bitmap 和 BitmapData 类将其绘制到舞台上。

我是否正确地接近这个?什么代码将图像从 Loader 获取到 BitmapData?另外,如何让图像在背景中显示?

我从来不理解 BitmapData/Bitmap 的比喻、解释、代码示例和教程链接。

4

1 回答 1

1

Loader类有一个content属性,您将通过它访问加载的内容(无论是图像还是 swf 文件)。

如果您加载图像,一旦加载完成,您可以通过content属性访问 Bitmap 实例,但您需要强制转换,因为 content 是一个 DisplayObject。

例如

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

关于 BitmapData/Bitmap:

  • BitmapData 主要包含像素信息(有多少像素,颜色或每个像素等)并允许您对其进行操作。这就是 BitmapData 所做的一切,但是,它无法显示,因为它不是 DisplayObject
  • 另一方面, Bitmap是一个 DisplayObject,因此可以将其添加到显示列表等。所有Bitmap 实例都包含一个 BitmapData 实例,可通过bitmapData属性访问。

简而言之,您使用 Bitmap 实例将图像添加到显示列表,并使用它的 bitmapData 属性来访问和操作它的像素。

回到加载器,您可以将加载器实例添加到显示列表或添加加载器内容。

下面是我使用 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));
}

高温高压

于 2010-11-09T01:28:37.407 回答