2011-11-14 5 views
0

У меня возникают проблемы с отображением тайских символов в компонентах Flex, которые используют Flash Text Engine (FTE), особенно на Mac OSX 10.6.8 Snow Leopard.Проблемы с отображением тайских символов в компонентах Flex FTE на Mac

Вот краткий текст из моих менеджеров шрифтов компилятора в гибком-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> 

... и другой из флэш-юникод-table.xml:

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

Мое приложение прогибается первоначально было в таблице стилей указано следующее:

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

Тайские символы визуализируются правильно в mx-компонентах, таких как TextField. Тем не менее, компоненты FTE, такие как TextLine, показывают эти дерьмовидные коробки в качестве замены. Моя первоначальная догадка заключалась в том, что каким-то образом один из менеджеров шрифтов компилятора, объявленных в flex-config.xml, не нашел правильный системный шрифт для возврата к тайским символам. Итак, я установил, что системный шрифт был установлен, перейдя в «Системные настройки»> «Язык и текст»> «Редактировать список». Затем я сменил fontFamily на Arial, Ayuthaya. Все еще видел ящики зла.

Далее я понял, что, возможно, шрифт Arial может назначать поле для каждого значения юникода, соответствующего тайскому символу. Таким образом, он фактически перекрывал системный шрифт Ayuthaya. Поэтому я снова изменил fontFamily на просто Ayuthaya, и это сработало с одной проблемой - Ayuthaya выглядит по-своему отличным от Arial для не-тайских персонажей.

Вот мой вопрос - существует ли менее инвазивный способ поддержки тайских компонентов FTE, чтобы внешний вид текста был ближе к шрифту Arial? Я бы предпочел не вставлять шрифт, потому что меня ограничивает размер SWF.

+0

Я закончил настройку этого стиля динамически на основе настроек локали в моем приложении flex. Я в порядке с шрифтом, который точно не соответствует Arial для определенной локали. Не думайте, что это настоящий ответ, хотя я считаю, что должен быть способ вернуться к другому шрифту, который поддерживает тайские глифы, если Arial не сможет отобразить их правильно: P. – P4ndaman

ответ

0

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

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

Работы для меня: P