2012-04-11 138 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

相关问题