BitmapData の変更点


[[API Reference]] > [[flash.display]] > BitmapData

* BitmapData [#n03cf388]
Flash描画用の画像データ

----
#contents
----
*フィールド [#u813d79f]
** width:Int : 幅 [#z25b45c9]
** height:Int : 高さ [#c627dec1]
** rectangle:Rectangle<Int> : 矩形 [#f0d89448]
** transparent:Bool : 透過するかどうか [#a29c0432]
----
*メソッド [#a68baf7b]
**new() : コンストラクタ [#e36f4ff7]
-引数
--width:Int : 幅
--height:Int : 高さ
--?transparent:Bool : 透過フラグ
--?fillcolor:Int : 塗りつぶし色

**fillRect() : 矩形で塗りつぶす [#m5e81462]
-引数
--r:Rectangle<Int> : 矩形
--color:Int : 塗りつぶし色

	function copyPixels(sourceBitmapData : BitmapData, sourceRect : flash.geom.Rectangle, destPoint : flash.geom.Point, ?alphaBitmapData : BitmapData, ?alphaPoint : flash.geom.Point, mergeAlpha : Bool = false) : Void;

**copyPixels() : イメージを高速コピーする [#cea1c595]
-引数
-- 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
-- ?alphaBitmapData:BitmapData : 2枚目のsourceを指定、アルファ成分のみ作用する(第01ソースと乗算される)
-- ?alphaPoint:Point : 2枚目のsourceの矩形範囲をPoint 型で指定(幅と高さはsourceRectの値と同じになる)
-- ?mergeAlpha:Boolean=false : アルファブレンドフラグ。true で有効、false で無効。デフォルトは false

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

**copy [#ad10440f]

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

**fillRect() で作る場合 [#p3d928de]
Rectangleを使って矩形領域を指定し、転送を行います。
#geshi(Actionscript){{

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

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

**draw() で作る場合 [#ue02e1a0]
BitmapDataを作り、Matrixの指定で転送します。
転送元の画像を回転させたりブレンドモード指定で転送できるので、柔軟に描画を行うことができます。
 ※ただし、重たい処理なので速度には注意が必要です
#geshi(Actionscript){{
  // 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));
}}

----
* 参考リンク [#j8a64764]
BitmapDataについてはこのページが詳しいです。

- http://hakuhin.jp/as3/bitmap.html