我在actionscript 3.0中创建动态TextFields。像许多其他人一样,当我设置.embedFonts = true;
ArialSlim是为actionscript嵌入和导出的。我已成功通过trace(Font.enumerateFonts());
有趣的是,当我注释掉嵌入行(如下所示)时,字体可以正常工作。
或者,.setTextFormat();
也可以在没有.embedFonts
行的情况下正常工作。
所以我的问题是,为什么?在这种情况下,我会遇到任何问题吗?
var divArray = new Array();
var x_Lbl_Array:Array = new Array();
var entries:int = 10;
var labelFormat:TextFormat = new TextFormat();
var arial:Font = new ArialSlim();
labelFormat.font = arial.fontName;
labelFormat.size = 10;
var xVar:int = 0;
for(var loop:int = 0; loop < entries; loop++){
x_Lbl_Array[loop] = new TextField();
//x_Lbl_Array[loop].embedFonts = true;
x_Lbl_Array[loop].antiAliasType = AntiAliasType.NORMAL;
x_Lbl_Array[loop].defaultTextFormat = labelFormat;
x_Lbl_Array[loop].x = xVar;
x_Lbl_Array[loop].y = 165;
x_Lbl_Array[loop].text = "test";
mc.addChild(x_Lbl_Array[loop]);
xVar++;
}
修改
我只是使用.embedFonts = true;
从第1帧运行此代码并且它有效...
也许我应该提一下,我在实例化的actionscript类中的方法中运行此代码时遇到了麻烦。该类位于外部.as文件中。这有助于回答我的问题吗?
答案 0 :(得分:1)
我尝试了你的代码,它适用于我(使用嵌入式字体)
检查是否包含所有字符。 您可以设置字符范围,也可以创建包含所有字符的文本字段。
答案 1 :(得分:1)
事实证明,我在某些时候点击了我的嵌入字体的轮廓格式选项中的“TLF(DF4)”。当我纠正这个并选择“经典(DF3)”时,它解决了我的问题。
我想我觉得非常奇怪的是,如果.embedFonts
设置为true
谢谢你,丹尼尔。我很感激帮助。