In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

forked from: デバイスフォントの回転とかアンチエイリアスとか

@author エスケイ
* デバイスフォントのtextFieldをBitmapDataに焼いて回転するテスト
* すごく適当。
Get Adobe Flash player
by nolabs 25 Aug 2010
/**
 * Copyright nolabs ( http://wonderfl.net/user/nolabs )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/gZxC
 */

// forked from esukei's デバイスフォントの回転とかアンチエイリアスとか
/**
 * @author エスケイ
 * デバイスフォントのtextFieldをBitmapDataに焼いて回転するテスト
 * すごく適当。
 */
package {
    import flash.display.Sprite;
    import flash.text.TextField;
    public class FlashTest extends Sprite {
        
            private var tf:TextField;
            private var btBmp:BakedTextBitmap;
        public function FlashTest() {
            // write as3 code here..
            tf = new TextField();
            tf.text = 'ああああああああああああああああ';
            
            btBmp = new BakedTextBitmap( tf );
            addChild(btBmp);
            
            btBmp.x = 100;
            btBmp.y = 100;
            
            btBmp.rotation = 0;
            
        }
    }
}
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.geom.Matrix;
class BakedTextBitmap extends Bitmap {
    
    private var bmpData:BitmapData;
    private var tf:TextFormat;
    
    public function BakedTextBitmap( textField:TextField )
    {
        //アンチエイリアスのための適当な拡大
        tf = textField.getTextFormat();
        /**
         * drawの引数にmatrixぶち込めば良かったことに後から気づいた
         */
        var hoge:* = tf.size;
        tf.size = ((typeof(hoge) === 'number')? hoge : 12 ) * 4;
        textField.setTextFormat(tf);
        textField.width *= 4;
        textField.height *= 4;
        
        bmpData = new BitmapData( textField.width*4, textField.height*4 );
        bmpData.draw(textField, new Matrix(4,0,0,4));
        super( bmpData );
        //拡大を元に戻しとく。
        width /= 4;
        height /= 4;
    }
    
}