リアルタイム 縁取り
指定したSpriteクラス内の描画データ周囲1ピクセルに、指定カラーをリアルタイムで付与するスクリプトを作成(AS3)。
Bitmap.drawメソッドでは、コピー対象となるオブジェクトの負の座標に位置する描画データはコピーできないものかと思っておりましたが、第二パラメータにMatrixオブジェクトを指定すれば可能だったのですね。Helpにしっかりと書いてありました。
コピー対象となるSpriteオブジェクト(spr)の負のX座標 -10ピクセルまでコピーしたい場合、以下のコードでBitmapDataにdrawが可能となります。
var n:int = 10; var m:Matrix = new Matrix(); m.translate(n, 0); var bmd:BitmapData = new BitmapData( spr.width + n, spr.height, true, 0x00000000 ); bmd.draw( spr, m );
■サンプル(※要FlashPlayer9)
サンプルではカバの周囲に白色のピクセルを付与しています。
ピクセル幅を任意に設定できるようにし、ベクターデータに付与させるようにしても面白そうですが、処理行数が増えるので保留。