我正在尝试在运行时在运行时嵌入字体,它有点起作用。我可以通过使用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中嵌入字体。
答案 0 :(得分:1)
我假设您已将textInstance
添加到您的swf中,并且它有一个TextFormat
,其中包含您稍后加载的字体。
将字体加载到swf后,您应该使用textInstance.text = textInstance.text
(如果textInstance
有defaultTextFormat
)再次设置文本,或者将textFormat设置为textInstance.setTextFormat(textFormat)
,因为加载字体后,文本字段不会自动更新。
答案 1 :(得分:0)
我必须使用字体创建一个新的TextFormat并将其设置为defaultTextFormat才能使其正常工作。