8

私が見つけた 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 );
4

1 に答える 1

5

埋め込みフォントを正しく機能させることは、間違いなく「暗い芸術」です。最初に、「SKA_75_marul_CE_extended」がフォントのメタデータにある実際の名前かどうかを確認します (Suitcase Fusion を使用して名前を抽出しました)。また、Flash が単純に埋め込みを拒否する TTF フォントも見てきました (おそらく、無効なメタデータが埋め込みシステムに障害を引き起こしているのでしょう)。フォントファイルの問題である場合に実際の問題が見つかるまで、既知の動作フォントでテストを続けます.

私が気づいたことの 1 つは、「public static var SKA_75_marul_CE_extended:String;」です...これはクラス型ではないでしょうか?

問題があった人からの FlashDevelop フォント埋め込み参照: http://www.flashdevelop.org/community/viewtopic.php?p=28301

于 2012-04-11T01:07:24.183 に答える