Flash IDEでのフォントの埋め込み(AS3.0編)
AS3.0で外部クラスから埋込みフォントを使用する2種類の方法
【その1(従来式)】
- Flashのライブラリメニューから「新しいフォント」を選択し、フォントシンボルを作成
- フォントシンボルを右クリックし、「リンケージ」を選択、「ActionScriptに書き出し」をチェックし、適当なクラス名を入力。(AS3.0では識別子を使用しません)
【その2(CUPPY式)】
- Flash IDEのテキストツールで、ダイナミックテキストフィールドを作成
- プロパティパネルで任意のフォントを選択し、必要ならば「埋め込み」ボタンをクリックし、使用する文字を選択
- 上記テキストフィールドを、メニューの「修正」→「シンボルに変換」(F8でショートカット)から、MovieClipに変換
- ライブラリに作成されたMovieClipシンボルを右クリックし、「コンパイルされたクリップに変換」を選択
- ライブラリに「コンパイル済みクリップ」が作成される
その2(CUPPY式)上記手順3で作成されたMovieClipは、ライブラリから削除しても問題ありません。またクラスファイルから埋込みフォントを使用する場合は、CUPPYさんのところでご紹介されているように、「コンパイル済みクリップ」をステージに配置してやる必要もありません。
手順としては少々面倒かもしれませんが、この方法には、
- 埋込む文字を指定し、ファイルサイズを軽量化することができる
- 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); } } }