我不了解你,但我很难理解 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。我做了相当数量的谷歌搜索,发现了这个:http ://forums.adobe.com/message/3477909
这家伙似乎和我有类似的问题,但我已经尝试了他的解决方案并得到了同样的负面结果。
任何帮助或链接或任何东西将不胜感激!
谢谢,安德烈
编辑: 刚刚尝试将字体切换为 Arial,它又回到了 Times New Roman。所以显然问题不在于嵌入,而在于我分配字体的方式——这意味着这可能没有我最初想象的那么复杂。从头开始,Arial 在我将 embedFonts 更改为 false 后工作。所以问题毕竟是嵌入。