テキストのビットマップ化練習

by otherone
♥0 | Line 95 | Modified 2010-09-15 16:38:53 | MIT License
play

ActionScript3 source code

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

/***************************
テキストのビットマップ化練習
***************************/
package {

    import flash.display.DisplayObject;
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;

    import flash.events.MouseEvent;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFormat;
    import flash.text.TextFormatAlign;

    import caurina.transitions.Tweener;

    public class Main3 extends Sprite {

        private var btnAppear:Sprite;
        private var btnDisappear:Sprite;

        private var tf:TextField;
        private var square:Shape;

        private var format :TextFormat;
        private var sp:Sprite;
        
        public function Main3():void {
            init();
        }
        private function init():void {

            btnAppear=new Sprite();
            btnAppear.graphics.beginFill(0x999999,0.2);
            btnAppear.graphics.drawRect(0,0,100,20);
            btnAppear.graphics.endFill();

            format= new TextFormat();
            format.align = TextFormatAlign.CENTER;
            var tf1 = new TextField();
            tf1.defaultTextFormat = format;
            tf1.width  = 100;// 
            tf1.height = 20;// 高さ
            tf1.text="表示";


            var tfBitmap:Bitmap=convertTextToBitmap(tf1);
            btnAppear.addChild(tfBitmap);
            //btnAppear.y=100

            addChild(btnAppear);

            btnDisappear=new Sprite();
            btnDisappear.graphics.beginFill(0x999999,0.2);
            btnDisappear.graphics.drawRect(0,0,100,20);
            btnDisappear.graphics.endFill();
            addChild(btnDisappear);
            btnDisappear.x=150
            ;
            btnAppear.buttonMode=btnDisappear.buttonMode=true
            ;
            // セッティング
            settings();
            // ボタンクリックイベント登録
            btnAppear.addEventListener(MouseEvent.CLICK,btnAppearClick);
            btnDisappear.addEventListener(MouseEvent.CLICK,btnDisappearClick);

            trace(btnAppear,"btnAppear");
        }
        private function convertTextToBitmap( _tf:TextField ):Bitmap {
            var _bmd:BitmapData = new BitmapData( _tf.width, _tf.height, true, 0x00ffffff );
            _bmd.draw( _tf );
            return new Bitmap(_bmd);
        }
        // オブジェクトをalphaゼロでセット
        private function settings():void {
            sp=new Sprite;
            //format.align = TextFormatAlign.CENTER
            var tf = new TextField();
            tf.defaultTextFormat = format;
            tf.width  = 100;// 
            tf.height = 20;// 高さ
            tf.text="aaaaaaaaa";
            tf.x=10;
            tf.y = btnAppear.x + btnAppear.height + 10;
            var bitmap:Bitmap=convertTextToBitmap(tf);
            sp.addChild(bitmap);
            sp.x=10;
            sp.y=30;
            addChild(sp);
            sp.graphics.beginFill(0xffff00);
            sp.graphics.drawRect(0,0,100,100);
            sp.graphics.endFill();

            sp.alpha=0;
        }
        // 表示ボタンが押された時の処理
        private function btnAppearClick(e:MouseEvent):void {
            appear();// 内容をセット
            btnAppear.removeEventListener(MouseEvent.CLICK,btnAppearClick);
        }
        // 非表示ボタンが押された時の処理
        private function btnDisappearClick(e:MouseEvent):void {
            disappear();// 内容を非表示
            btnAppear.addEventListener(MouseEvent.CLICK,btnAppearClick);
        }
        // 内容表示
        private function appear():void {
            Tweener.addTween(tf, {delay:0,time:1,alpha:1.0});
            Tweener.addTween(sp, {delay:1,time:1,alpha:1.0});
        }
        // 非表示
        private function disappear():void {
            // 表示を中止する処理
            Tweener.removeTweens(tf, {delay:0,time:3,alpha:1.0});
            Tweener.removeTweens(sp, {delay:3,time:3,alpha:1.0});
            // 透明にする処理
            Tweener.addTween(tf, {time:1,alpha:0.0});
            Tweener.addTween(sp, {time:1,alpha:0.0});
        }
    }
}