私が見つけた AS3 へのフォントの埋め込みに関するすべてのトピックを調べ、すべての解決策を試しました。明らかな何かが欠けている可能性がありますが、自分が何をしているのか完全には理解していないので、正しい方向に導いてください。回答の多くは Flash Builder または別のツールに関連していますが、私はFlashDevelopを使用しています。それが重要かどうかはわかりません。
Main.as に次の行があります。
[Embed(source = "assets/SKA_75_marul_CE_extended.ttf",
fontName = "SKA_75_marul_CE_extended",
fontWeight = "bold",
advancedAntiAliasing = "true",
mimeType = "application/x-font")]
public static var SKA_75_marul_CE_extended:String;
そして、これは Pointer.as と呼ばれる拡張された Sprite のコンストラクターに存在します。
var format:TextFormat = new TextFormat();
format.font = "SKA_75_marul_CE_extended";
format.color = 0xFFCCCC;
format.size = 20;
var label:TextField = new TextField();
label.defaultTextFormat = format;
label.text = "test";
label.embedFonts = true;
label.antiAliasType = AntiAliasType.ADVANCED;
//label.setTextFormat(format); --> I tried this too, didn't work...
label.defaultTextFormat = format;
label.x += img.width + 50;
this.addChild(label);
私が見つけた唯一の方法は、embedFonts をオフにすることです。C:/windows/fonts/arial.ttf を埋め込んでみましたが成功しませんでした。
フォントの埋め込みは、他に類を見ない暗い芸術のようです。1 時間の苦労の末、認めざるを得ません。助けを送ってください。
アップデート:
これが作業コードです。操作の順序が正しいためであることがわかりました...:
[Embed(source="assets/SKA_75_marul_CE_extended.ttf",
fontName = "myFont",
mimeType = "application/x-font",
fontWeight="normal",
fontStyle="normal",
unicodeRange="U+0020-U+007E",
advancedAntiAliasing="true",
embedAsCFF="false")]
private var myEmbeddedFont:Class;
var tf:TextFormat = new TextFormat( "myFont", 20,0xffffff );
var t:TextField = new TextField;
t.embedFonts = true; // very important to set
t.defaultTextFormat = tf;
t.text = text;
t.x += img.width + 50;
t.width = 700;
this.addChild( t );