#actionscript-3 #apache-flex #tlf #textflow
#actionscript-3 #apache-flex #tlf #textflow
Вопрос:
Во время выполнения я загружаю несколько swf-файлов, содержащих разные шрифты. У меня возникла проблема, когда я применяю его к textflow в расширенном редактируемом тексте. Есть идеи, как применить эти пользовательские шрифты к textflow?
Вот часть моего кода.
Для регистрации шрифтов
var FontClass:*;
var dom:ApplicationDomain = response.target.applicationDomain;
FontClass = dom.getDefinition(fileName) as Class;
Font.registerFont(FontClass);
Работает!
Для применения шрифта к textflow.
var cf:TextLayoutFormat = new TextLayoutFormat();
cf.fontFamily = mFontName; //Font Name
cf.fontLookup = FontLookup.EMBEDDED_CFF;
var editManager: IEditManager = IEditManager(textflow.interactionManager);
editManager.applyLeafFormat(cf);
Никаких сбоев! Работает!
Но примененный шрифт неверен. Пожалуйста, любые предложения.
Ответ №1:
IEditManager
это интерфейс, он ничего не делает. Вы должны использовать EditManager
.
Интерфейсы не являются рабочими классами, они используются для определения общего набора функций, любой класс, реализующий интерфейс, должен создавать рабочие версии всех функций, определенных в интерфейсе, иначе компилятор завершит работу с ошибкой. Дальнейшее чтение здесь
Комментарии:
1. Спасибо за ответ, но это не сработало. Проблема заключается в применении пользовательских шрифтов к TextFlow. Если я применяю шрифт устройства (например, Segoe) с тем же кодом, он работает правильно. У меня есть определенный пользователем набор шрифтов, и я внедрил их в разные swf-файлы. Я могу загружать и встраивать swf-файлы в свое приложение, но они не применяются к textflow. Например, у меня есть шрифт clearviewATT, у меня есть разные swf-файлы для его разных стилей (например, bold, regular, bolditalic, light и т.д.). Когда я применяю шрифт к textflow, кажется, что текст отформатирован в соответствии с семейством шрифтов по умолчанию.
2. Добавьте эту деталь в свой вопрос, вся информация полезна