| 包 | flash.display | 
| 类 | public class Bitmap | 
| 继承 | Bitmap  DisplayObject  EventDispatcher  Object | 
| 子类 | FlexBitmap | 
| 语言版本: | ActionScript 3.0 | 
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 | 
Bitmap() 构造函数创建的图像。 
 
 利用 Bitmap() 构造函数,可以创建包含对 BitmapData 对象的引用的 Bitmap 对象。创建了 Bitmap 对象后,使用父 DisplayObjectContainer 实例的 addChild() 或 addChildAt() 方法将位图放在显示列表中。
一个 Bitmap 对象可在若干 Bitmap 对象之中共享其 BitmapData 引用,与转换属性或旋转属性无关。由于能够创建引用相同 BitmapData 对象的多个 Bitmap 对象,因此,多个显示对象可以使用相同的复杂 BitmapData 对象,而不会因为每个显示对象实例使用一个 BitmapData 对象而产生内存开销。
Bitmap 对象可通过以下两种方式之一将 BitmapData 对象绘制到屏幕上:使用矢量渲染器作为填充位图形状,或使用更快的像素复制例程。像素复制例程的速度比矢量渲染器要快很多,但 Bitmap 对象必须满足某些条件才能使用该例程:
- 不能将拉伸、旋转或倾斜效果应用于 Bitmap 对象。
- 不能将颜色转换应用于 Bitmap 对象。
- 不能将混合模式应用于 Bitmap 对象。
-  不能通过蒙版或 setMask()方法进行剪裁。
- 图像本身不能是遮罩。
- 目标坐标必须位于一个整像素边界上。
如果从中加载 Bitmap 对象的域不同于用于加载图像的 Loader 对象的域,并且没有用于允许访问 Loader 对象的域的 URL 策略文件,则该域中的脚本无法访问 Bitmap 对象或其属性及方法。有关详细信息,请参阅 Flash Player 开发人员中心主题:安全性。
                  注意:Bitmap 类不是 InteractiveObject 类的子类,因此它无法调度鼠标事件。但是,可以使用包含 Bitmap 对象的显示对象容器的 addEventListener() 方法。
相关 API 元素
| 属性 | 由以下参数定义 | ||
|---|---|---|---|
|  | accessibilityProperties : AccessibilityProperties 
     此显示对象的当前辅助功能选项。 | DisplayObject | |
|  | alpha : Number 
     表示指定对象的 Alpha 透明度值。 | DisplayObject | |
| bitmapData : BitmapData 
    被引用的 BitmapData 对象。 | Bitmap | ||
|  | blendMode : String 
     BlendMode 类中的一个值,用于指定要使用的混合模式。 | DisplayObject | |
|  | blendShader : Shader [只写] 
     设置用于混合前景和背景的着色器。 | DisplayObject | |
|  | cacheAsBitmap : Boolean 
     如果设置为 true,则 Flash 运行时将缓存显示对象的内部位图表示形式。 | DisplayObject | |
|  | cacheAsBitmapMatrix : Matrix 
     如果为非 null,则 Matrix 对象会定义显示对象在 cacheAsBitmap 设置为 true 时的呈现方式。 | DisplayObject | |
|  | constructor : Object 
	 对类对象或给定对象实例的构造函数的引用。 | Object | |
|  | filters : Array 
     包含当前与显示对象关联的每个滤镜对象的索引数组。 | DisplayObject | |
|  | height : Number 
     表示显示对象的高度,以像素为单位。 | DisplayObject | |
|  | loaderInfo : LoaderInfo [只读] 
     返回一个 LoaderInfo 对象,其中包含加载此显示对象所属的文件的相关信息。 | DisplayObject | |
|  | mask : DisplayObject 
     调用显示对象被指定的 mask 对象遮罩。 | DisplayObject | |
|  | metaData : Object 
     如果元数据是通过 PlaceObject4 标记与此 DisplayObject 的实例一起存储在 SWF 文件中的,则获取 DisplayObject 实例的元数据对象。 | DisplayObject | |
|  | mouseX : Number [只读] 
     表示此鼠标或用户输入设备位置的 x 坐标,以像素为单位。 | DisplayObject | |
|  | mouseY : Number [只读] 
     表示此鼠标或用户输入设备位置的 y 坐标,以像素为单位。 | DisplayObject | |
|  | name : String 
     表示 DisplayObject 的实例名称。 | DisplayObject | |
|  | opaqueBackground : Object 
     指定显示对象是否由于具有某种背景颜色而不透明。 | DisplayObject | |
|  | parent : DisplayObjectContainer [只读] 
     表示包含此显示对象的 DisplayObjectContainer 对象。 | DisplayObject | |
| pixelSnapping : String 
    控制 Bitmap 对象是否贴紧至最近的像素。 | Bitmap | ||
|  | root : DisplayObject [只读] 
     对于加载的 SWF 文件中的显示对象,root 属性是此 SWF 文件所表示的显示列表树结构部分中的顶级显示对象。 | DisplayObject | |
|  | rotation : Number 
     表示 DisplayObject 实例距其原始方向的旋转程度,以度为单位。 | DisplayObject | |
|  | rotationX : Number 
     表示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 x 轴旋转(以度为单位)。 | DisplayObject | |
|  | rotationY : Number 
     表示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 y 轴旋转(以度为单位)。 | DisplayObject | |
|  | rotationZ : Number 
     表示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 z 轴旋转(以度为单位)。 | DisplayObject | |
|  | scale9Grid : Rectangle 
     当前有效的缩放网格。 | DisplayObject | |
|  | scaleX : Number 
     表示从注册点开始应用的对象的水平缩放比例(百分比)。 | DisplayObject | |
|  | scaleY : Number 
     表示从对象注册点开始应用的对象的垂直缩放比例(百分比)。 | DisplayObject | |
|  | scaleZ : Number 
     表示从对象的注册点开始应用的对象的深度缩放比例(百分比)。 | DisplayObject | |
|  | scrollRect : Rectangle 
     显示对象的滚动矩形范围。 | DisplayObject | |
| smoothing : Boolean 
    控制在缩放时是否对位图进行平滑处理。 | Bitmap | ||
|  | stage : Stage [只读] 
     显示对象的舞台。 | DisplayObject | |
|  | transform : flash.geom:Transform 
    一个对象,具有与显示对象的矩阵、颜色转换和像素范围有关的属性。 | DisplayObject | |
|  | visible : Boolean 
     显示对象是否可见。 | DisplayObject | |
|  | width : Number 
     表示显示对象的宽度,以像素为单位。 | DisplayObject | |
|  | x : Number 
     表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标。 | DisplayObject | |
|  | y : Number 
     表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 y 坐标。 | DisplayObject | |
|  | z : Number 
     表示 DisplayObject 实例相对于 3D 父容器沿 z 轴的 z 坐标位置。 | DisplayObject | |
| 方法 | 由以下参数定义 | ||
|---|---|---|---|
| 
     初始化 Bitmap 对象以引用指定的 BitmapData 对象。 | Bitmap | ||
|  | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 
	使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | |
|  | 
	将事件调度到事件流中。 | EventDispatcher | |
|  | 
     返回一个矩形,该矩形定义相对于 targetCoordinateSpace 对象坐标系的显示对象区域。 | DisplayObject | |
|  | 
    返回一个矩形,该矩形根据 targetCoordinateSpace 参数定义的坐标系定义显示对象的边界,但不包括形状上的任何笔触。 | DisplayObject | |
|  | 
     将 point 对象从舞台(全局)坐标转换为显示对象的(本地)坐标。 | DisplayObject | |
|  | 
     将二维点从舞台(全局)坐标转换为三维显示对象的(本地)坐标。 | DisplayObject | |
|  | 
	检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | |
|  | 
	 表示对象是否已经定义了指定的属性。 | Object | |
|  | 
     计算显示对象的边框,以确定它是否与 obj 显示对象的边框重叠或相交。 | DisplayObject | |
|  | 
     计算显示对象,以确定它是否与 x 和 y 参数指定的点重叠或相交。 | DisplayObject | |
|  | 
	 表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
|  | 
     将三维显示对象的(本地)坐标的三维点转换为舞台(全局)坐标中的二维点。 | DisplayObject | |
|  | 
     将 point 对象从显示对象的(本地)坐标转换为舞台(全局)坐标。 | DisplayObject | |
|  | 
	 表示指定的属性是否存在、是否可枚举。 | Object | |
|  | 
	从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | |
|  | 
     设置循环操作动态属性的可用性。 | Object | |
|  | 
	 返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | |
|  | 
	 返回指定对象的字符串表示形式。 | Object | |
|  | 
	 返回指定对象的原始值。 | Object | |
|  | 
	检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher | |
| bitmapData | 属性 | 
bitmapData:BitmapData| 语言版本: | ActionScript 3.0 | 
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 | 
被引用的 BitmapData 对象。
实现
    public function get bitmapData():BitmapData    public function set bitmapData(value:BitmapData):void| pixelSnapping | 属性 | 
pixelSnapping:String| 语言版本: | ActionScript 3.0 | 
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 | 
控制 Bitmap 对象是否贴紧至最近的像素。PixelSnapping 类包括以下可能值:
- PixelSnapping.NEVER-- 不进行像素贴紧。
- PixelSnapping.ALWAYS-- 图像始终与最近的像素贴紧,与变形无关。
- PixelSnapping.AUTO-- 如果绘制图像时未应用旋转或倾斜效果,并且图像是以 99.9% 到 100.1% 的缩放系数绘制的,则图像将与最近的像素贴紧。如果这些条件得到满足,则以 100% 的缩放比例绘制位图图像,与最近的像素贴紧。在内部,此值允许用矢量渲染器以尽可能快的速度绘制图像。
实现
    public function get pixelSnapping():String    public function set pixelSnapping(value:String):void| smoothing | 属性 | 
| Bitmap | () | 构造函数 | 
public function Bitmap(bitmapData:BitmapData = null, pixelSnapping:String = "auto", smoothing:Boolean = false)| 语言版本: | ActionScript 3.0 | 
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 | 
初始化 Bitmap 对象以引用指定的 BitmapData 对象。
参数| bitmapData:BitmapData(default =null)— 被引用的 BitmapData 对象。 | |||
| pixelSnapping:String(default = "auto")— Bitmap 对象是否贴紧至最近的像素。 | |||
| smoothing:Boolean(default =false)— 在缩放时是否对位图进行平滑处理。例如,下例显示使用系数 3 缩放的同一位图,smoothing设置为false(左侧)和true(右侧):
 
 | 
示例 ( 如何使用本示例 )
const IMAGE_URL:String = "http://www.helpexamples.com/flash/images/logo.png";
 
var ldr:Loader = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, ldr_complete);
ldr.load(new URLRequest(IMAGE_URL));
 
var bitmap1:Bitmap;
var bitmap2:Bitmap;
var bitmap3:Bitmap;
var bitmap4:Bitmap;
 
function ldr_complete(evt:Event):void {
    var bmp:Bitmap = ldr.content as Bitmap;
 
    bitmap1 = new Bitmap(bmp.bitmapData);
    bitmap1.x = 100;
    bitmap1.y = 100;
    bitmap1.rotation = 0;
    addChild(bitmap1);
 
    bitmap2 = new Bitmap(bmp.bitmapData);
    bitmap2.x = 200;
    bitmap2.y = 100;
    bitmap2.rotation = 90;
    addChild(bitmap2);
 
    bitmap3 = new Bitmap(bmp.bitmapData);
    bitmap3.x = 300;
    bitmap3.y = 100;
    bitmap3.rotation = 180;
    addChild(bitmap3);
 
    bitmap4 = new Bitmap(bmp.bitmapData);
    bitmap4.x = 400;
    bitmap4.y = 100;
    bitmap4.rotation = 270;
    addChild(bitmap4);
}
threshold() 方法。此任务是使用以下步骤完成的:
 - 创建一个 url属性,它是图像文件的位置和名称
- 类构造函数调用 configureAssets()方法,而后者又调用completeHandler()方法。
- configureAssets()创建 Loader 对象,该对象随后实例化一个事件侦听器,而该事件侦听器在- completeHandler()完成图像操作时调度。
- 下一步,buildChild()方法创建一个 URLRequest 对象的新实例request,该实例带有传递的url,这样,就可以知道文件的名称和位置。
- request对象被传递给- loader.load()方法,该方法通过显示对象将图像加载到内存中。
- 图像随后将被放在显示列表中,后者将图像立即显示在屏幕的坐标 x = 0, y = 0 处。
- 然后,completeHandler()方法将执行下列任务:- 创建另一个 Loader 对象,以及使用 Loader 对象初始化的 Bitmap 对象。
- 创建第二个 Bitmap 对象 duplicate,该对象再调用duplicateImage()方法,该方法创建原始图像的副本。
- 创建一个 BitmapData 对象,该对象将被分配给 duplicate对象的 BitmapData 对象。
- 创建一个与原始图像具有相同的坐标、宽度和高度的新的 Rectangle 对象。
- 创建一个新的 Point 对象,其默认为 x = 0, y = 0。
- 创建以下变量:
      - operation:在阈值大于等于原始值时应用新颜色。
- threshold:依据其对每个像素进行比较的值设置为浅灰色(Alpha 值为 0xCC)。
- color:通过阈值测试的像素将被设置的颜色,在本例中为纯黄色。
- mask:设置为与颜色正好相反的颜色(透明的蓝色)。
- copySource:设置为 false,指示在阈值未通过测试的情况下不复制像素值。该值没有意义,因为图像是重复的,并且只更改通过了阈值测试的像素。
 
- 使用前面的变量调用 threshold()方法。得到的阈值计算式如下所示:if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00。
 
注意:
- 您需要编译 SWF 文件,将“本地播放安全性”设置为“只访问本地文件”。
- 此示例要求将名为 Image.gif 的文件与您的 SWF 文件放在同一目录中。
- 建议使用宽度最大为 80 像素的图像。
package {
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.geom.Point;
    import flash.geom.Rectangle;
    import flash.net.URLRequest;
    public class BitmapExample extends Sprite {
        private var url:String = "Image.gif";
        private var size:uint = 80;
        public function BitmapExample() {
            configureAssets();
        }
        private function configureAssets():void {
            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
            loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            var request:URLRequest = new URLRequest(url);
            loader.x = size * numChildren;
            loader.load(request);
            addChild(loader);
        }
        private function duplicateImage(original:Bitmap):Bitmap {
            var image:Bitmap = new Bitmap(original.bitmapData.clone());
            image.x = size * numChildren;
            addChild(image);
            return image;
        }
        private function completeHandler(event:Event):void {
            var loader:Loader = Loader(event.target.loader);
            var image:Bitmap = Bitmap(loader.content);
            var duplicate:Bitmap = duplicateImage(image);
            var bitmapData:BitmapData = duplicate.bitmapData;
            var sourceRect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height);
            var destPoint:Point = new Point();
            var operation:String = ">=";
            var threshold:uint = 0xCCCCCCCC;
            var color:uint = 0xFFFFFF00;
            var mask:uint = 0x000000FF;
            var copySource:Boolean = true;
            bitmapData.threshold(bitmapData,
                                 sourceRect,
                                 destPoint,
                                 operation,
                                 threshold,
                                 color,
                                 mask,
                                 copySource);
        }
        
        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("Unable to load image: " + url);
        }
    }
}
Tue Jun 12 2018, 11:04 AM Z
 隐藏继承的公共属性
 隐藏继承的公共属性 显示继承的公共属性
 显示继承的公共属性
