【AS3】フォントの外部swf化してみた

フォントを 外部読み込みswfにまとめる。メモ。

■font_axis.fla
ライブラリで新規フォント作成。フォント「AXIS Std H」を選択。
リンケージでクラス名「AXIS_Std_H」にする。
font_axis.swf書き出し。

■test_fontLoad.fla

var req :URLRequest = new URLRequest("font_axis.swf"); //外部swf指定
var loader:Loader = new Loader();
var context :LoaderContext = new LoaderContext(); //loadの第2引数に指定

//ロード先のアプリケーションドメインを指定
context.applicationDomain = ApplicationDomain.currentDomain;

//ロードコンプリートリスナー
loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onLoadComplete );
loader.load( req, context );

//ロードコンプリート関数
function onLoadComplete( e:Event ) {

	//アプリケーションドメインからクラスを参照し、生成
	var AXIS_H:Class = ApplicationDomain.currentDomain.getDefinition( "AXIS_Std_H" ) as Class;

	//フォントクラスをグローバルフォントリストに登録
	Font.registerFont(AXIS_H);

	var text_field = new TextField();
	stage.addChild(text_field);

	var format = new TextFormat();
	format.font = "AXIS Std H";    //ここで本来のフォント名を使用!!!
	format.size = 15;
	text_field.defaultTextFormat = format;

	text_field.embedFonts = true;
	text_field.rotation = 15;
	text_field.text =  "外部swfにフォントを埋め込み読み込む方法。"

	trace( Font.enumerateFonts() ); //追加されたフォントを確認
}

おし、これでいろいろフォント使える。

この方法だと全部読み込んでくるから日本語あるやつだと重いなぁ。
あと、使う何文字かだけとかは個別にテキストフィールドに指定しないとやぱだめぽい。。

メモメモ。

you