BitmapData

API Reference > flash.display > BitmapData

BitmapData

Flash描画用の画像データ



フィールド

width:Int : 幅

height:Int : 高さ

rectangle:Rectangle<Int> : 矩形

transparent:Bool : 透過するかどうか


メソッド

new() : コンストラクタ

  • 引数
    • width:Int : 幅
    • height:Int : 高さ
    • ?transparent:Bool : 透過フラグ
    • ?fillcolor:Int : 塗りつぶし色

fillRect() : 矩形で塗りつぶす

  • 引数
    • r:Rectangle<Int> : 矩形
    • color:Int : 塗りつぶし色

copyPixels() : イメージを高速コピーする

  • 引数
    • sourceBitmapData:BitmapData : 転送元画像
    • sourceRect:Rectangle : sourceBitmapDataの矩形範囲を、Rectangle 型で指定
    • destPoint:Point : ターゲット側の配置座標をPoint 型で指定
    • ?alphaBitmapData:BitmapData : 2枚目のsourceを指定、アルファ成分のみ作用する(第01ソースと乗算される)
    • ?alphaPoint:Point : 2枚目のsourceの矩形範囲をPoint 型で指定(幅と高さはsourceRectの値と同じになる)
    • ?mergeAlpha:Boolean=false : アルファブレンドフラグ。true で有効、false で無効。デフォルトは false

draw() : BitmapDataへの描画

  • 引数
    • source:Dynamic : 転送元画像
    • ?matrix:flash.geom.Matrix : 描画行列
    • ?colortrans:flash.geom.ColorTransform : カラー値調整オブジェクト
    • ?blendMode:Dynamic : ブレンド描画モード
    • ?clipRect:Rectangle<Int> : ???
    • ?smooth:Bool : スムージングフラグ
  • 戻り値:Void

copy


複数の矩形を組み合わせた画像を作る方法

FlxSprite.makeGraphic() は単純な矩形しか作ることができません。 複数の矩形を組み合わせた画像を作る場合には BitmapData に矩形を組み合わせた画像を転送する必要があります

fillRect() で作る場合

Rectangleを使って矩形領域を指定し、転送を行います。

  // 座標(4, 0)に、4x2のサイズで転送します
  var rect = new Rectangle(4, 0, 4, 2);

  // 灰色の矩形を転送します
  bmp.fillRect(rect, FlxColor.GRAY);

draw() で作る場合

BitmapDataを作り、Matrixの指定で転送します。 転送元の画像を回転させたりブレンドモード指定で転送できるので、柔軟に描画を行うことができます。

※ただし、重たい処理なので速度には注意が必要です
  // 24x8 の白い矩形画像を作る
  var bmp:BitmapData = new BitmapData(8 * 3, 8, false, FlxColor.WHITE);

  // 白、黒、白の画像にする
  // 8x8の黒い画像を作る
  var black8x8 = new BitmapData(8, 8, false, FlxColor.BLACK);
  // (8, 0)の座標に黒い画像を転送する
  bmp.draw(new BitmapData(black8x8, new Matrix(1, 0, 0, 1, 8, 0));

参考リンク

BitmapDataについてはこのページが詳しいです。