- 2008-02-22 (金)
- action script
起動の遅い Flash のヘルプを見るよりも、自分のエントリをググる方が速かったりするのでコピペ用にエントリ。
デバイスフォント…ローカルPCにインストールされてるフォント。制作者が自分の PC にどのフォントが入っているかを確認できる。例えば新品の Windows でデバイスフォントリストを取得すれば「だいたいどのWindowsでもインストールされているフォントのリスト」が分かるので、そのフォントを指定しておけば、swf にフォントを埋め込まなくても Windows ユーザーのほとんどがそのフォントでコンテンツ閲覧できる。
埋め込みフォント….fla ファイルにダイナミックテキストフィールドを置いて「フォントの埋め込み」したフォント。フォントデータがコンパイル時に同梱されるので、フォントをインストールしていないユーザーのブラウザでも表示させることができるけど、フォントデータの分だけ swf の容量が重くなる。日本語全部埋め込むと3〜5MB重くなる。
AS3 でフォントリスト取得
AS3 では上述の「埋め込みフォント」のみを出力するオプションが用意されているので、自分が不要なフォントデータを埋め込んでいないかチェックできますね。以下のコードを Flash CS3(FlashPlayer9設定) で新規 .fla ファイルのフレームスクリプトにペーストして貼付ければ、PC にインストールされてるフォントのリストが取得できるはずです。
import flash.text.Font;
//true に設定されている場合、デバイスフォントと埋め込みフォントの両方を含む、すべてのフォントのリストが返されます。
trace("デバイスフォントと埋め込みフォントの両方を含む、すべてのフォントのリスト------------------------------");
var allFonts:Array = Font.enumerateFonts(true);
allFonts.sortOn("fontName", Array.CASEINSENSITIVE);
for(var i:int=0;i<allFonts.length;i++){
trace(allFonts[i].fontName);
}
//false に設定されている場合、埋め込みフォントのリストのみが返されます
trace("埋め込みフォントのリストのみ------------------------------");
var embeddedFonts:Array = Font.enumerateFonts(false);
embeddedFonts.sortOn("fontName", Array.CASEINSENSITIVE);
for(var j:int=0;j<+embeddedFonts.length;j++){
trace(embeddedFonts[j].fontName);
}
"MS Pゴシック"だったか"MS P ゴシック"だったか忘れてしまうので、手間なようですが僕はいちいち上記コードでリスト取得して確認してますw
おまけ:
以下のコードみたいに、フォーマットを適応させてから文字挿入の順で実行しないとテキストフォーマットは反映されない。逆じゃ駄目です。
tf.defaultTextFormat = my_fmt; tf.text = "ほげほげ";
Comment:0
Trackback:0
- TrackBack URL for this entry
- http://www.trick7.com/blog/mt-tb.cgi/692
- Listed below are links to weblogs that reference
- AS3 フォントリスト取得&確認用コード from trick7.com blog




