组件类的字体嵌入

时间:2011-12-12 06:40:02

标签: actionscript-3 actionscript text fonts flash-cs5

首先,我已经彻底阅读了this question,但没有一个答案有帮助。

我正在开发一个组件类,它允许开发人员在Flash CS5 IDE中设置标签的标签和字体。我遇到的问题是,当我尝试使用TextFormat类来设置字体和大小等时,它不会出现。如果我删除embedFonts = true,则它根本不使用该格式,而只是以Times New Roman字体打印我的文本。这是我的代码:

frmt = new TextFormat();
frmt.font = FontName;
frmt.size = labelSize;
frmt.align = TextFormatAlign.CENTER;
label_txt = new TextField();
label_txt.autoSize = TextFieldAutoSize.LEFT;
label_txt.embedFonts = true;
//label_txt.selectable = false;
label_txt.defaultTextFormat = frmt;
label_txt.setTextFormat(frmt);
label_txt.addEventListener(Event.ENTER_FRAME, textDrawHandler);
addChild(label_txt);

然后在enterFrame事件中:

label_txt.text = label;
label_txt.setTextFormat(this.frmt);

1 个答案:

答案 0 :(得分:0)

如果embedFonts为真时你的字体消失了,那么你可以:

  • 没有embedded the correct font subset

    请务必记住,除了字体系列外,斜体/非斜体和粗体/常规的每个变体都需要单独的字体符号!

  • 未在文本格式中指定正确的字体名称

    您在字体符号的属性面板的“ActionScript”选项卡中设置的名称仅指可用于类名称(用于ActionScript中的Font.registerFont())。字体的显示名称(用于TextFormat的font属性和/或CSS中的font-family)会自动设置!每个字体的显示名称都可以在Flash CS5中字体属性面板“选项”选项卡底部的灰色文本区域中看到,或者您可以使用Font.enumerateFonts()在运行时跟踪所有可用的显示名称。 / p>