#actionscript-3 #fonts #embed #textfield
#actionscript-3 #шрифты #Внедрить #textfield
Вопрос:
Я пытаюсь внедрять шрифты во время выполнения в actionscript, и это в некоторой степени работает. Я могу внедрять шрифты либо с помощью тега embed, либо загрузив ресурс библиотеки шрифтов с именем ссылки и используя его с новым текстовым полем. Однако текстовое поле, существующее в видеоролике, уже не имеет встроенного шрифта и в нем отсутствуют символы.
Краткий пример в коде (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-файл.
Ответ №1:
Я предполагаю, что вы textInstance
уже добавили их в свой swf-файл, и в нем есть TextFormat
шрифт, который вы загружаете позже.
После загрузки вашего шрифта в swf вам следует либо снова установить текст с помощью textInstance.text = textInstance.text
(если textInstance
есть defaultTextFormat
), либо установить TextFormat с помощью textInstance.setTextFormat(textFormat)
, поскольку текстовое поле не обновляется автоматически при загрузке шрифта.
Комментарии:
1. Нет кубиков. В тексте по-прежнему отсутствуют символы: (
Ответ №2:
Мне пришлось создать новый TextFormat со шрифтом и установить его как defaultTextFormat по умолчанию, чтобы заставить его работать.