パッケージflash.display
public class Bitmap
継承Bitmap Inheritance DisplayObject Inheritance EventDispatcher Inheritance Object
SubclassesFlexBitmap

Bitmap クラスはビットマップイメージを表す表示オブジェクトを表します。これらは flash.display.Loader クラスによってロードするイメージか、Bitmap() コンストラクタによって作成するイメージです。

Bitmap() コンストラクタを使用すると、BitmapData オブジェクトへの参照を含んだビットマップオブジェクトを作成できます。ビットマップオブジェクトの作成後、親 DisplayObjectContainer インスタンスの addChild() メソッドまたは addChildAt() メソッドを使用して表示リスト上にビットマップを配置できます。

ビットマップオブジェクトの BitmapData への参照は、translation プロパティまたは rotation プロパティと関係なく、複数のビットマップオブジェクトで共有できます。作成した複数のビットマップオブジェクトで同じ BitmapData オブジェクトを参照することができるため、各表示オブジェクトインスタンスに関する BitmapData オブジェクトのメモリのオーバーヘッドを避けつつ、複数の表示オブジェクトで同一の複雑な BitmapData オブジェクトを使用することができます。

ビットマップオブジェクトを使用して BitmapData オブジェクトを画面に描画するには、ベクターレンダラをビットマップ塗りつぶしのシェイプとして使用するか、高速なピクセルコピールーチンを使用します。ピクセルコピールーチンはベクターレンダラよりも高速ですが、使用する際には、ビットマップオブジェクトに以下の特定の条件が適用されます。

ロードするビットマップオブジェクトの置かれているドメインが、イメージのロードに使用する Loader オブジェクトのドメインと異なる場合は、Loader オブジェクトのドメインへのアクセスを許可するドメイン間ポリシーファイルが用意されていないと、そのドメイン内のスクリプトはビットマップオブジェクトやそのプロパティとメソッドにアクセスできません。詳細については、次のトピックを参照してください。

メモ: Bitmap クラスは InteractiveObject クラスのサブクラスではないため、マウスイベントを送出できません。しかし、ビットマップオブジェクトを格納した表示オブジェクトコンテナの addEventListener() メソッドを使用できます。

例の表示

関連項目

flash.display.Loader
flash.display.BitmapData
表示アーキテクチャについて
ビットマップの作成と操作


パブリックプロパティ
 プロパティ定義
 InheritedaccessibilityProperties : AccessibilityProperties
この表示オブジェクトの現在のアクセシビリティオプションです。
DisplayObject
 Inheritedalpha : Number
指定されたオブジェクトのアルファ透明度値を示します。
DisplayObject
  bitmapData : BitmapData
BitmapData オブジェクトが参照されます。
Bitmap
 InheritedblendMode : String
使用するブレンドモードを指定する BlendMode クラスの値です。
DisplayObject
 InheritedcacheAsBitmap : Boolean
true に設定されている場合、表示オブジェクトの内部ビットマップ表現が Flash Player にキャッシュされます。
DisplayObject
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 Inheritedfilters : Array
表示オブジェクトに現在関連付けられている各フィルタオブジェクトが格納されているインデックス付きの配列です。
DisplayObject
 Inheritedheight : Number
表示オブジェクトの高さを示します (ピクセル単位)。
DisplayObject
 InheritedloaderInfo : LoaderInfo
この表示オブジェクトが属するファイルのロード情報を含む LoaderInfo オブジェクトを返します。
DisplayObject
 Inheritedmask : DisplayObject
呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。
DisplayObject
 InheritedmouseX : Number
マウス位置の x 座標を示します (ピクセル単位)。
DisplayObject
 InheritedmouseY : Number
マウス位置の y 座標を示します (ピクセル単位)。
DisplayObject
 Inheritedname : String
DisplayObject のインスタンス名を示します。
DisplayObject
 InheritedopaqueBackground : Object
表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。
DisplayObject
 Inheritedparent : DisplayObjectContainer
この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。
DisplayObject
  pixelSnapping : String
ビットマップオブジェクトが最も近いピクセルに吸着されるかどうかを指定します。
Bitmap
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
 Inheritedroot : DisplayObject
ロードされた SWF ファイル内の表示オブジェクトの場合、root プロパティはその SWF ファイルが表す表示リストのツリー構造部分の一番上にある表示オブジェクトとなります。
DisplayObject
 Inheritedrotation : Number
DisplayObject インスタンスの元の位置からの回転角を度単位で示します。
DisplayObject
 Inheritedscale9Grid : Rectangle
現在有効な拡大 / 縮小グリッドです。
DisplayObject
 InheritedscaleX : Number
基準点から適用されるオブジェクトの水平スケール (percentage) を示します。
DisplayObject
 InheritedscaleY : Number
オブジェクトの基準点から適用されるオブジェクトの垂直スケール (percentage) を示します。
DisplayObject
 InheritedscrollRect : Rectangle
表示オブジェクトのスクロール矩形の境界。
DisplayObject
  smoothing : Boolean
ビットマップを拡大 / 縮小するときにスムージングするかどうかを指定します。
Bitmap
 Inheritedstage : Stage
表示オブジェクトのステージ。
DisplayObject
 Inheritedtransform : Transform
表示オブジェクトのマトリックス、カラー変換、ピクセル境界に関係するプロパティを持つオブジェクトです。
DisplayObject
 Inheritedvisible : Boolean
表示オブジェクトが可視かどうかを示します。
DisplayObject
 Inheritedwidth : Number
表示オブジェクトの幅を示します (ピクセル単位)。
DisplayObject
 Inheritedx : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの x 座標を示します。
DisplayObject
 Inheritedy : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの y 座標を示します。
DisplayObject
パブリックメソッド
 メソッド定義
  Bitmap(bitmapData:BitmapData = null, pixelSnapping:String = "auto", smoothing:Boolean = false)
指定された BitmapData オブジェクトを参照するようにビットマップオブジェクトを初期化します。
Bitmap
 InheritedaddEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
 InheriteddispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
EventDispatcher
 InheritedgetBounds(targetCoordinateSpace:DisplayObject):Rectangle
targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。
DisplayObject
 InheritedgetRect(targetCoordinateSpace:DisplayObject):Rectangle
シェイプ上の線を除き、targetCoordinateSpace パラメータによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。
DisplayObject
 InheritedglobalToLocal(point:Point):Point
point オブジェクトをステージ (グローバル) 座標から表示オブジェクトの (ローカル) 座標に変換します。
DisplayObject
 InheritedhasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 InheritedhitTestObject(obj:DisplayObject):Boolean
表示オブジェクトを評価して、obj 表示オブジェクトと重複または交差するかどうかを調べます。
DisplayObject
 InheritedhitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
表示オブジェクトを評価して、x および y パラメータで指定されたポイントと重複または交差するかどうかを調べます。
DisplayObject
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 InheritedlocalToGlobal(point:Point):Point
point オブジェクトを表示オブジェクトの (ローカル) 座標からステージ (グローバル) 座標に変換します。
DisplayObject
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
 InheritedremoveEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 InheritedtoString():String
指定されたオブジェクトのストリング表現を返します。
Object
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
 InheritedwillTrigger(type:String):Boolean
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント一覧定義
 Inheritedactivate Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。DisplayObject
 Inheritedadded 表示オブジェクトが表示リストに追加されたときに送出されます。DisplayObject
 Inheriteddeactivate Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。DisplayObject
 InheritedenterFrame 再生ヘッドが新しいフレームに入るときに送出されます。DisplayObject
 Inheritedremoved 表示オブジェクトが表示リストから削除されようとしているときに送出されます。DisplayObject
 Inheritedrender 表示リストが更新およびレンダリングされようとしているときに送出されます。DisplayObject
プロパティの詳細
bitmapDataプロパティ
bitmapData:BitmapData  [read-write]

BitmapData オブジェクトが参照されます。

実装
    public function get bitmapData():BitmapData
    public function set bitmapData(value:BitmapData):void
pixelSnappingプロパティ 
pixelSnapping:String  [read-write]

ビットマップオブジェクトが最も近いピクセルに吸着されるかどうかを指定します。PixelSnapping クラスには正の値が入ります。

実装
    public function get pixelSnapping():String
    public function set pixelSnapping(value:String):void
smoothingプロパティ 
smoothing:Boolean  [read-write]

ビットマップを拡大 / 縮小するときにスムージングするかどうかを指定します。true である場合、ビットマップは拡大 / 縮小時にスムージングされます。false である場合、ビットマップは拡大 / 縮小時にスムージングされません。

実装
    public function get smoothing():Boolean
    public function set smoothing(value:Boolean):void
コンストラクタの詳細
Bitmap()コンストラクタ
public 関数 Bitmap(bitmapData:BitmapData = null, pixelSnapping:String = "auto", smoothing:Boolean = false)

指定された BitmapData オブジェクトを参照するようにビットマップオブジェクトを初期化します。

パラメータ
bitmapData:BitmapData (default = null) — BitmapData オブジェクトが参照されます。
 
pixelSnapping:String (default = "auto") — ビットマップオブジェクトが最も近いピクセルに吸着されるかどうかを示します。
 
smoothing:Boolean (default = false) — ビットマップを拡大 / 縮小するときにスムージングするかどうかを示します。たとえば、次の例は同じビットマップを 3 倍に拡大した場合に、smoothingfalse に設定したもの (左) と true に設定したもの (右) です。


次の例では、BitmapExample クラスを使用して、 イメージ "Image.gif" をデフォルトの位置 (x = 0、y = 0) にある DisplayObject にロードします。続いて、 "Image.gif" のコピーを元のイメージの右に配置します。このコピーでは、 threshold() メソッドを使用したテストに合格したピクセルに新しい色が適用されます。 ここでは以下の手順を実行します。
  1. プロパティ url を作成します。これはイメージファイルの場所と名前です。
  2. クラスコンストラクタが configureAssets() メソッドを呼び出します。続いて、このメソッドでは completeHandler() メソッドを経由して提供される情報が出力されます。
  3. configureAssets() が Loader オブジェクトを作成します。 これは、completeHandler() がイメージの操作を完了したときに送出されるイベントリスナーをインスタンス化します。
  4. 次に、buildChild() メソッドが URLRequest オブジェクト の新しいインスタンス request を作成して、ファイル名と場所を認識させるために url を渡します。
  5. request オブジェクトが loader.load() メソッドに渡されます。このメソッドにより、 イメージが表示オブジェクトを経由してメモリにロードされます。
  6. 次にイメージが表示リストに配置され、イメージは直ちに 画面の座標 x = 0、y = 0 に表示されます。
  7. 続いて、completeHandler() メソッドで、次の処理が実行されます。
    1. 2 番目の Loader オブジェクトと Bitmap オブジェクトを作成します。Bitmap オブジェクトは、この Loader オブジェクトで Bitmap オブジェクトを作成します。
    2. 2 番目のBitmap オブジェクト duplicate を作成し、 duplicateImage() メソッドを呼び出して、元のイメージの複製を作成します。
    3. BitmapData オブジェクトを作成し、duplicate オブジェクトの BitmapData オブジェクトに割り当てます。
    4. 元のイメージと同じ座標、幅、高さで初期化された新しい Rectangle オブジェクトを 作成します。
    5. 新しい Point オブジェクトを作成します。デフォルトでは x = 0、y = 0 に作成されます。
    6. 次に示す変数を作成します。
      • operation: しきい値が元の値以上である場合に、 新しい色を適用します。
      • threshold: 各ピクセルの比較対象である値は、 アルファ 0xCC の明るい灰色に設定されます。
      • color: しきい値のテストに合格したピクセルに設定される色です。 この場合は黄色です。
      • mask: 正反対の色に設定します。この場合は透明色の青色です。
      • copySource: false に設定されます。これは、しきい値を満たさなかった場合に、 ピクセル値がコピーされないことを示します。イメージが複製され、 しきい値のテストに合格したピクセルだけが変更されるため、この値に意味はありません。
    7. 上記の変数を使用して threshold() メソッドを呼び出します。結果のしきい値の等式は 次のようになります。 if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00.

メモ :


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);
        }
    }
}