【问题标题】:Using embedded fonts with TLFTextField通过 TLFTextField 使用嵌入字体
【发布时间】:2011-05-23 11:22:36
【问题描述】:

我不了解你,但我很难理解 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 后工作。所以问题 毕竟嵌入。

【问题讨论】:

    标签: flash fonts embedding flash-cs5 tlf


    【解决方案1】:

    是的,我确切地知道现在的问题是什么。我留下这个是为了警告那些对 TLF 非常困惑的人(我想很多人)。

    问题源于 TLF 和经典文本使用的大纲格式之间的兼容性问题。显然,TLF 仅适用于 DF4,而 Classic Text 仅适用于 DF3。您可以在“嵌入”对话框的“Actionscript”选项卡下更改这些设置(Flash CS5,不确定 CS4)。

    我不确定是否有解决方法 - 我肯定会寻找一个解决方法,因为目前我需要同时使用 DF3 和连字 - 但我认为这足以解决帮助将来偶然发现此问题的其他人。

    安德烈

    【讨论】:

    • 我看到一个问题,在外部加载的 SWF 中,文本字段显示为 Times New Roman,直到我单击该字段,然后它建立了我分配给它的 Arial 嵌入字体。就像该字段没有完全正确初始化一样。如果它是只读的,则单击它什么也不做,它保持为 Times New Roman(尽管在设计器中设置为 Arial)。整个 TLF 都是垃圾。
    • 此外,您不能选择 DF3 或 DF4,除非您明确选择“export for ActionScript”,这与仅嵌入字体不同。如果您只是嵌入字体,并且同时使用都使用的经典和 TLF 文本字段,例如“Arial Bold”,那么嵌入了什么样的字符数据?两个都? flash 是否确保使用 Arial Bold 的两个字段都嵌入了正确的字符数据?
    【解决方案2】:

    万一其他人对 DF3 和 DF4 有问题...您可以同时嵌入两者,

    例如,DF4 的“Helvetica”和 DF3 的“Helvetica”(重要的是它们都可以使用相同的名称)...然后您可以将字体“Helvetica”与旧文本字段和较新的 TLF 一起使用文本字段。

    它使文件大小加倍,因为您将字体嵌入两次,但它的工作原理就像一个魅力。

    这也适用于 Flex。

    【讨论】:

      猜你喜欢
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      相关资源
      最近更新 更多