Bitmap 和 BitmapData 类

Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本

使用位图图像的主要 ActionScript 3.0 类是 Bitmap 类和 BitmapData 类,前者用于在屏幕上显示位图图像,后者用于访问和处理位图的原始图像数据。

了解 Bitmap 类

作为 DisplayObject 类的子类,Bitmap 类是用于显示位图图像的主要 ActionScript 3.0 类。这些图像可能已通过 flash.display.Loader 类加载或使用 Bitmap() 构造函数动态地创建。 从外部源加载图像时,Bitmap 对象只能使用 GIF、JPEG 或 PNG 格式的图像。实例化后,可将 Bitmap 实例视为需要呈示在舞台上的 BitmapData 对象的包装。由于 Bitmap 实例是一个显示对象,因此可以使用显示对象的所有特性和功能来操作 Bitmap 实例。有关使用显示对象的详细信息,请参阅显示编程

像素贴紧和平滑

除了所有显示对象常见的功能外,Bitmap 类还提供了特定于位图图像的一些附加功能。

Bitmap 类的 pixelSnapping 属性可确定 Bitmap 对象是否贴紧最近的像素。此属性接受 PixelSnapping 类中定义的三个常量之一:ALWAYSAUTONEVER

应用像素贴紧的语法为:

myBitmap.pixelSnapping = PixelSnapping.ALWAYS;

通常,缩放位图图像时,图像会变得模糊或扭曲。若要帮助减少这种扭曲,请使用 BitmapData 类的 smoothing 属性。如果将该布尔值属性设置为 true,当缩放图像时,可使图像中的像素平滑或消除锯齿。它可使图像更加清晰、更加自然。

了解 BitmapData 类

BitmapData 类位于 flash.display 包中,它可以看作是加载的或动态创建的位图图像中包含的像素的照片快照。此快照用对象中的像素数据的数组表示。BitmapData 类还包含一系列内置方法,可用于创建和处理像素数据。

若要实例化 BitmapData 对象,请使用以下代码:

var myBitmap:BitmapData = new BitmapData(width:Number, height:Number, transparent:Boolean, fillColor:uinit);

widthheight 参数指定位图的大小。从 AIR 3 和 Flash Player 11 开始,取消了 BitmapData 对象的大小限制。位图的最大大小取决于操作系统。

在 AIR 1.5 和 Flash Player 10 中,BitmapData 对象的最大宽度或高度为 8,191 像素,并且像素总数不能超过 16,777,215 像素。(因此,如果 BitmapData 对象的宽度为 8,191 像素,则其高度只能为 2,048 像素。)在 Flash Player 9 及早期版本和 AIR 1.1 及早期版本中,高度最大为 2,880 像素,宽度最大为 2,880 像素。

transparent 参数指定位图数据是 (true) 否 (false) 包括 Alpha 通道。fillColor 参数是一个 32 位颜色值,它指定背景颜色和透明度值(如果设置为 true)。以下示例创建一个具有 50% 透明的橙色背景的 BitmapData 对象:

var myBitmap:BitmapData = new BitmapData(150, 150, true, 0x80FF3300);

若要在屏幕上呈示新创建的 BitmapData 对象,请将此对象分配给或包装到 Bitmap 实例中。为此,可以将 BitmapData 对象作为 Bitmap 对象的构造函数参数传递,也可以将此对象分配给现有 Bitmap 实例的 bitmapData 属性。您还必须通过调用将包含该 Bitmap 实例的显示对象容器的 addChild()addChildAt() 方法将该 Bitmap 实例添加到显示列表中。有关使用显示列表的详细信息,请参阅在显示列表中添加显示对象

以下示例创建一个具有红色填充的 BitmapData 对象,并在 Bitmap 实例中显示此对象:

var myBitmapDataObject:BitmapData = new BitmapData(150, 150, false, 0xFF0000); 
var myImage:Bitmap = new Bitmap(myBitmapDataObject); 
addChild(myImage);