Mac OSX 10.6.8 Snow Leopardで、Flashテキストエンジン(FTE)を使用するFlexコンポーネントでタイ語の文字を表示する問題が発生しています。MacのFlex FTEコンポーネントにタイ語の文字が表示されない問題
ここフレックス-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>
私のFlexアプリケーションがもともと持っていましたスタイルシートで次のように定義されています。
Application {
fontSize: 12px;
fontFamily: Arial;
font-sharpness:0;
font-anti-alias-type:advanced;
}
これまでTextFieldなどのmxコンポーネントでタイ文字が正しく描画されています。しかし、TextLineなどのFTEコンポーネントは、そのような奇妙な外観のボックスを代替として表示します。私の初期の推測では、flex-config.xmlで宣言されたコンパイラフォントマネージャの何人かが、タイ文字のフォールバックに適したシステムフォントを見つけられなかったとのことでした。そこで、システム環境設定>言語とテキスト>リストの編集に進み、システムフォントがインストールされていることを確認しました。その後、fontFamilyをAyuthayaのArialに変更しました。まだ悪の箱を見ていた。
次に、おそらくArialフォントが、タイ文字に対応する各ユニコード値のボックスを割り当てている可能性があると考えました。したがって、Ayuthayaシステムフォントを効果的に無効にしていました。だからfontFamilyをもう一度Ayuthayaに変更しました。これは1つの問題で機能しました.Authuthayaは本来Arialとはタイ以外の文字では異なるように見えます。
ここに私の質問です - テキストの外観がArialフォントに近いように、FTEコンポーネントでタイ語をサポートするための侵略的な方法はありませんか?私はSWFサイズに拘束されているので、フォントを埋め込むことはしません。
フレックスアプリケーションのロケール設定に基づいてこのスタイルを動的に設定しました。私は正確に特定のロケールのArialと一致しないフォントでうまくいきます。 これは本当の答えだとは思わない - Arialが正しく表示できない場合、タイのグリフをサポートする他のフォントに戻す方法があるはずだと思う。 – P4ndaman