2012-04-11 83 views
8

我已經瞭解了在AS3中嵌入字體的所有主題,我可以找到並嘗試所有解決方案。我可能錯過了一些明顯的東西,但我不完全明白我在做什麼,請引導我朝着正確的方向前進。許多答案都涉及Flash Builder或其他工具,但我使用的FlashDevelop爲。不知道這是否重要。爲什麼我不能在AS3中顯示嵌入的字體?

我有這行我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:

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個小時後才能承認。請發送幫助。

UPDATE:

這裏的工作代碼,原來它是由於其操作的正確順序...:

[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); 
+0

謝謝您的回答。 「正確的操作順序」原來是關鍵 – 2015-05-16 13:31:54

回答

5

它最明確了「黑暗藝術」來獲得嵌入的字體正常工作。我首先會檢查「SKA_75_marul_CE_extended」是字體在其元數據中的實際名稱(我使用Suitcase Fusion提取名稱)。我也看到Flash簡單地拒絕嵌入的TTF字體(也許無效的元數據導致嵌入系統出錯)。我將繼續使用已知的工作字體進行測試,直到找到實際問題以防字體文件問題。

我注意到的一件事是「公共靜態變量SKA_75_marul_CE_extended:String;」...不應該這是類型的類?從別人

FlashDevelop中嵌入字體參考誰了問題: http://www.flashdevelop.org/community/viewtopic.php?p=28301

+0

我終於得到了它的工作,我接受了你的答案,並且我將把工作代碼放在問題中。 – joon 2012-04-17 23:32:43