BLOG ENTRY

埋め込みフォントを単体の一括管理クラスで行う[as3]

helvetica_on_as

ActionScript3で使用する全フォントの埋め込みを単体の一括管理クラスで行う場合。

まず、使用するクラスのみで埋め込む場合はこんな感じ。

HelloWorldHelvetica.as

package {
    import flash.display.*;
    import flash.text.*;

    public class HelloWorldHelvetica extends Sprite {

        [Embed(source = "C:/WINDOWS/Fonts/Helvetica LT 55 Roman.ttf", fontFamily = "MyHelvetica")]
        private var myhelvetica:Class;

        public function HelloWorldHelvetica() {
            var t:TextField = new TextField();
            t.embedFonts = true;
            t.htmlText = '<font face="MyHelvetica">Hello World</font>';
            addChild(t);
        }
    }
}

$mxmlc HelloWorldHelvetica.as

実作業時は、フォント埋め込みはどこかのファイルでまとめて行う場合が多い。
使用する全フォントの埋め込みを単体の一括管理クラスで行う場合(複数のクラスで同一の埋め込みフォントを使い回す場合)はこんな感じで。

FontEmbedder.as

package {
    public class FontEmbedder {
        [Embed(source = "C:/WINDOWS/Fonts/Helvetica LT 55 Roman.ttf", fontFamily = "MyHelvetica")]
        private var Helvetica:Class;
    }
}

HelloWorld.as

package {
    import flash.display.Sprite;
    import flash.text.TextField;

    public class HelloWorld extends Sprite {
        FontEmbedder; //参照によって強制的にフォントとクラスがコンパイルされる

        public function HelloWorld() {
            var t:TextField = new TextField();
            t.embedFonts = true;
            t.htmlText = '<font face="MyHelvetica">Hello World</font>';
            addChild(t);
        }
    }
}

$mxmlc HelloWorld.as

さらにクラスレベルでのフォント埋め込みだとこんな感じで。

MyHelvetica.as

package {
    import flash.display.Sprite;
    import mx.core.FontAsset;

    [Embed(source = "C:/WINDOWS/Fonts/Helvetica LT 55 Roman.ttf", fontFamily = "MyHelvetica")]
    public class MyHelvetica extends FontAsset {
    }
}

MyHelloWorld.as

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    public class MyHelloWorld extends Sprite {
        MyHelvetica; //参照によって強制的にフォントとクラスがコンパイルされる

        public function MyHelloWorld () {
            var t:TextField = new TextField();
            t.embedFonts = true;
            t.htmlText = '<font face="MyHelvetica">My Hello World</font>';
            addChild(t);
        }
    }
}

$mxmlc MyHelloWorld.as

一番多い使い方としては、font-familyをformatして指定する形だと思うのでこんな感じだと思われ。

SampleHelloWorld.as

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.text.TextFormat;

    public class SampleHelloWorld extends Sprite {
        MyHelvetica; //参照によって強制的にフォントとクラスがコンパイルされる

        public function SampleHelloWorld () {
            var format:TextFormat = new TextFormat();
            var t:TextField = new TextField();
            format.font = 'MyHelvetica';
            t.embedFonts = true;
            t.defaultTextFormat = format;
            t.text = 'Hello World';
            addChild(t);
        }
    }
}

$mxmlc SampleHelloWorld.as

終わり。

関連記事

  1. 外部SWFの埋め込みフォントを読み込み[AS3]
  2. AS3でXMLファイルの内容を読み込んで出力する[AS3]
  3. AS3で外部JSONデータ読み込みのカスタムイベント[AS3][JSON]
  4. BitmapDataクラスのPerlinNoiseメソッドでエフェクト[AS3][filter]
  5. PV3Dの7種類のPrimitiveObject[as3]

WRITE COMMENT


(required)


(required)


(required)

MENU

veltica creative of