スプライトに文字を描画する - Action Script
スプライトに文字を描画したいことがあります。しかし、スプライトのgraphicsオブジェクトには文字を描画するメソッドはありません。このため、文字を直接描画することができません。対応方法としては、文字を描画したビットマップデータを用意し、そのビットマップデータをスプライトに貼り付ける方法があります。
<pre class="brush:as3">
var spr: Sprite = new Sprite();
spr.x=50;
spr.y=100;
var tf:TextField = new TextField;
tf.defaultTextFormat = new TextFormat("MS ゴシック", 14, 0x000000 );
tf.autoSize = TextFieldAutoSize.LEFT;
tf.text = "ハロー Flash World!!";
var Canvas:BitmapData;
Canvas = new BitmapData(tf.textWidth, tf.textHeight, false, 0xFFFFFF);
Canvas.draw(tf);
var Bmp:Bitmap = new Bitmap(Canvas);
spr.addChild(Bmp);
addChild(spr);
</pre>
手順としては、まず、TextFieldを定義し、defaultTextFormatプロパティにフォントサイズやフォント名、カラーを指定します。次に、BitmapDataを用意し、BitmapDataにTextFieldの文字を描画します。さらにBitmapDataからBitmapを作成し、それをSpriteに貼り付けます。
Bitmapを作成せず、TextFieldをスプライトに直接貼り付けてしまった場合、テキストが画像ではなくテキストフィールドとして表示されます。この場合、ドラッグで文字を選択できてしまいます。
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。