Я не знаю о вас, но мне очень тяжело разобраться с TLF.
Я использую Flash CS5.Я загрузил встроенный шрифт из внешнего SWF.Насколько я могу судить, он встроен правильно - он работал до того, как я переключился с классического TextField, - но мне нужно было переключиться, потому что мне нужна расширенная поддержка лигатуры.Мой код:
//setting up...
var text:TFLTextField = new TLFTextField();
text.width = 530;
text.height = 330;
text.type = TextFieldType.INPUT;
text.text = "Enter your own text here";
text.embedFonts = true;
addChild(text);
var format:TextLayoutFormat = new TextLayoutFormat();
format.fontSize = currentSize;
format.ligatureLevel = LigatureLevel.EXOTIC;
textFlow = text.textFlow;
textFlow.hostFormat = format;
textFlow.flowComposer.updateAllControllers();
//... later on, when the font is loaded:
private function fontLoadedHandler(e:Event):void {
var a:Array = Font.enumerateFonts();
for (var i:Number = 0; i < a.length; i++) {
trace(a[i]); //font name shows up just fine in the list...
}
var format:TextLayoutFormat = new TextLayoutFormat();
format.fontFamily = e.currentTarget.fontName;
format.fontLookup = FontLookup.EMBEDDED_CFF;
format.fontSize = currentSize;
textFlow.invalidateAllFormats();
textFlow.hostFormat = format;
textFlow.flowComposer.updateAllControllers();
}
Когда я компилирую, по умолчанию используется Times New Roman.Я провел достаточное количество поисков в Google и обнаружил следующее: http://forums.adobe.com/message/3477909
У парня, похоже, есть проблема, похожая на мою, но я попробовал его решение и получил тот же отрицательный результат.
Любая помощь или ссылки или что-нибудь будет очень признателен!
Спасибо, Андрей
Редактировать: Просто попытался переключить шрифт на Arial,и он снова вернулся к Times New Roman.Так что, очевидно, проблема не в встраивании, а в том, как я назначаю шрифт - это может быть менее сложным, чем я думал. Поцарапайте, Arial работал после того, как я изменил embedFonts на false.Так что проблема заключается в том, что в конце концов встраивается.