У меня возникают проблемы с отображением тайских символов в компонентах Flex, использующих Flash Text Engine (FTE), особенно в Mac OSX 10.6.8 Snow Leopard.
Вот пример моих менеджеров шрифтов компилятора в flex-config.xml:
</p>
<pre><code><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:
</p>
<pre><code><language-range>
<lang>Thai</lang>
<range>U+0E01-0E5B</range>
</language-range>
Изначально в моем приложении flex было определено следующее:
</p>
<pre><code>Application {
fontSize: 12px;
fontFamily: Arial;
font-sharpness:0;
font-anti-alias-type:advanced;
}
Тайские символы правильно отображаются в компонентах mx, таких как TextField. Тем не менее, компоненты FTE, такие как TextLine, показывают эти дрянные окна в качестве замены. Мое первоначальное предположение заключалось в том, что каким-то образом один из менеджеров шрифтов компилятора, объявленный в файле flex-config.xml, не находил правильный системный шрифт, к которому можно прибегнуть к тайским символам. Итак, я убедился, что системный шрифт был установлен, перейдя в «Системные настройки»> «Язык и текст»> «Редактировать список». Затем я изменил шрифт Family на Arial, Ayuthaya. Все еще видел ящики зла.
Затем я подумал, что, возможно, шрифт Arial может назначать поле для каждого значения Юникода, соответствующего тайскому символу. Таким образом, он фактически перекрывал системный шрифт Ayuthaya. Так что я изменил fontFamily еще раз на просто Ayuthaya, и это работало с одной проблемой - Ayuthaya выглядит неотлично от Arial для нетайских символов.
Вот мой вопрос - есть ли менее инвазивный способ поддержки тайского языка в компонентах FTE, чтобы внешний вид текста был ближе к шрифту Arial? Я бы предпочел не вставлять шрифт, потому что я ограничен размером SWF.