package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.PixelSnapping; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageQuality; import flash.display.StageScaleMode; import flash.events.Event; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; [SWF(width=465, height=465, frameRate=30, backgroundColor=0xffffff)] public class Main extends Sprite { public static const MESSAGES:String = "あーてすてす"; public function Main() { var s:String, pos:Number, format:TextFormat, original:TextField, fake:Bitmap, data:BitmapData, tmp:TextField; // フォーマット format = new TextFormat("Arial", 24); // オリジナル original = new TextField(); original.x = 100; original.y = 20; original.defaultTextFormat = format; original.autoSize = TextFieldAutoSize.LEFT; original.text = MESSAGES; // フェイク // サイズはオリジナルから取ってくる data = new BitmapData(original.width, original.height, true, 0); fake = new Bitmap(data, PixelSnapping.ALWAYS, true); fake.x = 100; fake.y = 50; pos = 0; for each (s in MESSAGES.split("")) { tmp = new TextField(); tmp.defaultTextFormat = format; tmp.autoSize = TextFieldAutoSize.LEFT; tmp.text = s; tmp.x = pos; pos += tmp.textWidth; data.draw(tmp, tmp.transform.matrix); } // ステージに置く addChild(original); addChild(fake); } } } TextField まわりの確認 vol.1