【问题标题】:Problems displaying Thai characters in Flex FTE components on Mac在 Mac 上的 Flex FTE 组件中显示泰语字符时出现问题
【发布时间】:2011-11-14 16:24:57
【问题描述】:

我在使用 Flash 文本引擎 (FTE) 的 Flex 组件中显示泰语字符时遇到了问题,特别是在 Mac OSX 10.6.8 Snow Leopard 上。

这是我在 flex-config.xml 中的编译器字体管理器的简介:

<flex-config>

    <target-player>10.2.0</target-player>

    <!-- Specifies the version of the compiled SWF -->
    <swf-version>11</swf-version>

    <compiler>
      <!-- Specifies the locales for internationalization. -->
      <locale>
          <locale-element>en_US</locale-element>
      </locale>

      <fonts>
          <!-- ... -->
          <!-- Compiler font manager classes, in policy resolution order-->
          <managers>
              <manager-class>flash.fonts.JREFontManager</manager-class>
              <manager-class>flash.fonts.BatikFontManager</manager-class>
              <manager-class>flash.fonts.AFEFontManager</manager-class>
              <manager-class>flash.fonts.CFFFontManager</manager-class>
          </managers>
      <!-- ... -->
        </fonts>
    </compiler>
</flex-config>

...另一个来自 flash-unicode-table.xml:

<language-range>
    <lang>Thai</lang>
    <range>U+0E01-0E5B</range>
</language-range>

我的 flex 应用程序最初在其样式表中定义了以下内容:

Application {
    fontSize: 12px;
    fontFamily: Arial;
    font-sharpness:0;
    font-anti-alias-type:advanced;
}

到目前为止,泰语字符在 TextField 等 mx 组件中正确呈现。但是,诸如 TextLine 之类的 FTE 组件将那些看起来很糟糕的框显示为替代品。我最初的猜测是,在 flex-config.xml 中声明的编译器字体管理器之一没有找到正确的系统字体来回退泰语字符。因此,我通过转到“系统偏好设置”>“语言和文本”>“编辑列表”来确保安装了系统字体。然后我将 fontFamily 更改为 Arial, Ayuthaya。仍然看到邪恶的盒子。

接下来我想也许 Arial 字体可能会为每个对应于泰语字符的 unicode 值分配一个框。所以它有效地覆盖了 Ayuthaya 系统字体。所以我再次将 fontFamily 更改为 Ayuthaya,这解决了一个问题 - 对于非泰语字符,Ayuthaya 看起来与 Arial 本质上不同。

这是我的问题 - 是否有一种侵入性较小的方式来支持 FTE 组件中的泰语,以使文本的外观更接近 Arial 字体?我宁愿不嵌入字体,因为我受到 SWF 大小的限制。

【问题讨论】:

  • 我最终根据我的 flex 应用程序中的区域设置动态设置了这种样式。对于特定语言环境的字体与 Arial 不完全匹配,我很好。不过,不要认为这是一个真正的答案 - 我相信如果 Arial 无法正确显示它们,我相信应该有一种方法可以退回到支持泰语字形的其他字体:P。

标签: apache-flex fonts flex4 thai


【解决方案1】:

根据 Adob​​e 的说法,根据语言环境选择字体似乎是正确的方法。这是对我在他们论坛上的帖子的回复:

“旧版文本字段(mx 组件)使用字体回退,之前对您来说工作正常,但不一定像算法回退那样支持样式。FTE 作为专业文本布局框架对字体选择更加严格。在简而言之,您必须根据预期的脚本区域选择合适的字体。Arial 不仅仅是泰语字符的正确选择。请尝试使用类似 Angsana 或 Jasmine 或任何支持泰语脚本的字体。”

为我工作:P

【讨论】:

    猜你喜欢
    • 2012-05-31
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多