Flash IDEでのフォントの埋め込み(AS3.0編)

via _level0.CUPPY

AS3.0で外部クラスから埋込みフォントを使用する2種類の方法

【その1(従来式)】

  1. Flashのライブラリメニューから「新しいフォント」を選択し、フォントシンボルを作成
  2. フォントシンボルを右クリックし、「リンケージ」を選択、「ActionScriptに書き出し」をチェックし、適当なクラス名を入力。(AS3.0では識別子を使用しません)


【その2(CUPPY式)】

  1. Flash IDEのテキストツールで、ダイナミックテキストフィールドを作成
  2. プロパティパネルで任意のフォントを選択し、必要ならば「埋め込み」ボタンをクリックし、使用する文字を選択
  3. 上記テキストフィールドを、メニューの「修正」→「シンボルに変換」(F8でショートカット)から、MovieClipに変換
  4. ライブラリに作成されたMovieClipシンボルを右クリックし、「コンパイルされたクリップに変換」を選択
  5. ライブラリに「コンパイル済みクリップ」が作成される


その2(CUPPY式)上記手順3で作成されたMovieClipは、ライブラリから削除しても問題ありません。またクラスファイルから埋込みフォントを使用する場合は、CUPPYさんのところでご紹介されているように、「コンパイル済みクリップ」をステージに配置してやる必要もありません。

手順としては少々面倒かもしれませんが、この方法には、

  1. 埋込む文字を指定し、ファイルサイズを軽量化することができる
  2. swfのパブリッシュを高速化することができる

という素晴らしいアドバンテージがあります。日本語フォントの埋込みをする場合は、必然的にこちらの方法を選択することになりますね。

埋込んだフォントをクラスで使用するのは、上記2つの方法とも共通で、こんな感じです。TextFormatオブジェクトを生成し、fontプロパティに埋込んだフォント名を設定します。TextFieldのembedFontsプロパティはtrueに設定します。AS2.0でいうところのTextField.setNewTextFormat()は、AS3.0ではTextField.defaultTextFormatプロパティですね。

package {
	
	import flash.display.Sprite;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import flash.text.TextFormat;
	
	public class FontTest extends Sprite {
	
		public function FontTest() {
			init();
		}
		
		private function init():void {
			var textformat:TextFormat = new TextFormat();
			textformat.font = "ヒラギノ角ゴ Pro W6";
			textformat.size = 40;

			var textfield:TextField = new TextField();
			textfield.autoSize = TextFieldAutoSize.LEFT;
			textfield.embedFonts = true;
			textfield.defaultTextFormat = textformat;
			textfield.text = "あいうえお";
			addChild(textfield);
		}
			
	}
	
}