2010-11-09 73 views
0

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

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

我从来没有理解的BitmapData /位图的隐喻,解释,代码示例和教程链接赞赏。

回答

1

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

如果您的图片加载完成,您可以通过内容属性访问位图实例,但需要投射,因为内容是DisplayObject。

例如

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

关于的BitmapData /位图:

  • 的BitmapData是主要包含像素信息(多少像素 在那里,什么颜色或每个 一个,等等),并允许您 操纵他们。这是所有 的BitmapData确实,但是,它不能 被显示,因为它不是一个 的DisplayObject
  • 位图另一方面为DisplayObject,因此它可以是 添加到显示列表等 全部位图实例包含一个BitmapData实例,可通过bitmapData属性访问 。

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

回到装载程序,您可以将Loader实例添加到显示列表中,或者添加装载程序内容 。

这里我用一个位图的意思是一个简单的例子,并使用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

+0

所以显示在屏幕上的图像,我甚至都不需要的位图数据? – Moshe 2010-11-09 01:36:43

+0

@Moshe每个位图都包含bitmapData,但只是为了显示,你是对的,你不需要访问它或任何东西。 – 2010-11-09 12:13:56