我已经了解了在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);
谢谢您的回答。 “正确的操作顺序”原来是关键 – 2015-05-16 13:31:54