スプライトに文字を描画する - 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の作業もする。
掲載日: 2009-10-28
iPentec all rights reserverd.