Проблемы с отображением тайских символов в компонентах Flex FTE на Mac - PullRequest
0 голосов
/ 14 ноября 2011

У меня возникают проблемы с отображением тайских символов в компонентах 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.

1 Ответ

0 голосов
/ 19 ноября 2011

Похоже, что выбор шрифта на основе локали является правильным подходом в соответствии с Adobe. Вот ответ на мой пост на их форумах:

"Устаревшее текстовое поле (компонент mx) использует откат шрифта, и раньше оно работало нормально для вас, но не обязательно было таким поддерживаемым стилем, как алгоритмический откат. Короче говоря, вы должны выбрать соответствующий шрифт для региона вашего сценария. Arial - не просто правильный выбор для тайского персонажа. Попробуйте что-то вроде Angsana или Jasmine или любого другого, поддерживающего тайский скрипт.

У меня работает: P

...