是否可以在运行时嵌入字体以用于SWF中的现有动态文本字段实例?

时间:2011-05-25 16:01:24

标签: actionscript-3 fonts embed textfield

我正在尝试在运行时在运行时嵌入字体,它有点起作用。我可以通过使用embed标签或通过加载具有链接名称的字体库资产来嵌入字体,并将其与新的TextField一起使用。但是,影片剪辑上存在的文本字段已经没有嵌入字体且缺少字符。

代码中的一个快速示例(movieclip上存在textInstance):

var embeddedFonts = Font.enumerateFonts(); //Shows embedded font

var textFormat:TextFormat = textInstance.getTextFormat();

textInstance.text = "Don't be lazy"; //missing characters 

var textField:TextField = new TextField();

textField.embedFonts = true;
textField.defaultTextFormat = textFormat;
textField.selectable = false;
textField.autoSize = TextFieldAutoSize.LEFT;
textField.multiline = true;

textField.text = "Don't be lazy"; //shows all characters
addChild(textField);

有可能这样做吗?我想在运行时嵌入字体,我正在加载多个SWF,我不想在每个SWF中嵌入字体。

2 个答案:

答案 0 :(得分:1)

我假设您已将textInstance添加到您的swf中,并且它有一个TextFormat,其中包含您稍后加载的字体。

将字体加载到swf后,您应该使用textInstance.text = textInstance.text(如果textInstancedefaultTextFormat)再次设置文本,或者将textFormat设置为textInstance.setTextFormat(textFormat),因为加载字体后,文本字段不会自动更新。

答案 1 :(得分:0)

我必须使用字体创建一个新的TextFormat并将其设置为defaultTextFormat才能使其正常工作。