Actionscript 3.0嵌入字体 - 文本未显示

时间:2012-03-28 15:32:49

标签: actionscript-3 flash actionscript

我在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文件中。这有助于回答我的问题吗?

2 个答案:

答案 0 :(得分:1)

我尝试了你的代码,它适用于我(使用嵌入式字体)

检查是否包含所有字符。 您可以设置字符范围,也可以创建包含所有字符的文本字段。

答案 1 :(得分:1)

事实证明,我在某些时候点击了我的嵌入字体的轮廓格式选项中的“TLF(DF4)”。当我纠正这个并选择“经典(DF3)”时,它解决了我的问题。

我想我觉得非常奇怪的是,如果.embedFonts设置为true

,字体显示正常

谢谢你,丹尼尔。我很感激帮助。