TextField まわりの確認 vol.1

by soundkitchen
♥0 | Line 52 | Modified 2009-10-21 22:43:13 | MIT License
play

ActionScript3 source code

/**
 * Copyright soundkitchen ( http://wonderfl.net/user/soundkitchen )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/r2Ef
 */

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);
        }
    }
}