问题描述
|
我正在尝试在运行时将字体嵌入到动作脚本中,这有些起作用。我可以通过使用embed标签或通过使用链接名称加载字体库资产并将其与新的TextField一起使用来嵌入字体。但是,影片剪辑上存在的文本字段已经没有嵌入的字体,并且缺少字符。
一个简单的代码示例(动画片段中存在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中嵌入字体。
解决方法
我假设您已经将
textInstance
添加到了swf中,并且其中还有一个TextFormat
,并且您稍后要加载该字体。
将字体加载到swf后,您应该再次使用textInstance.text = textInstance.text
设置文本(如果textInstance
带有defaultTextFormat
)或将textFormat设置为textInstance.setTextFormat(textFormat)
,因为文本字段在加载字体时不会自动更新。
,我必须使用该字体创建一个新的TextFormat并将其设置为defaultTextFormat才能使其正常工作。