2011年6月5日日曜日

FlashIDEでのフォントの埋め込み

FlashIDEでのフォントの埋め込み難しい。
まずフォントクラスを定義してSWCに書き出す。

それからMainでそのSWCを読む設定にし、
且つ、フォントクラスのインスタンスを一つ生成する。
そうするとMainに埋め込まれる....あってるかな...

読み込み側
→ Main.fla
→ Main.as

フォントを埋め込んだファイル
→ font.fla
読み込み指定
→ font.swc

※使おうとしているフォントがflaに埋まっているとダメ。
 埋まってなくても空になっているテキストフィールドに設定されているだけでもダメ。
 これは結構面倒。
 ただコンパイルはとても早くなるのでやっぱやるしかないかな。
 (プロジェクトの規模やマシンのスピードにもよるだろうけど、
  今のプロジェクトではコンパイル26秒から、6秒に縮まった。)


●Main.as
package fontTest
{
    import FontShingoM;
    
    import flash.display.MovieClip;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFormat;
    
    public class Main extends flash.display.MovieClip
    {
        public function Main()
        {
            trace("fontTest.Main");
            
            var font:FontShingoM = new FontShingoM();
            trace(font.fontName);
            
            var aaa:TextField = new TextField();
            aaa.text = "あいうえおかきくけこ";
            aaa.autoSize = TextFieldAutoSize.LEFT
            aaa.embedFonts = true;
            
            var format:TextFormat = new TextFormat();
            txt.text = "あいうえおかきくけこ"; //タイムラインに配置したテキストフィールド
            //txt.autoSize = TextFieldAutoSize.LEFT ;
            //↑これを設定するとなぜか高さが低くなる事がある。調べたらテキストフィールドの
            //「段落前後のアキ」にマイナスの値が設定されていた。
            
            format.size = 33;
             format.font = font.fontName; //又は、format.font ="A-OTF Shin Go Pro M";
            format.color = 0xCEEB43;
            aaa.defaultTextFormat = format;
            addChild(aaa);
            
            txt.defaultTextFormat = format;
        }
    }
}

0 件のコメント:

コメントを投稿