특히 Mac OSX 10.6.8 Snow Leopard에서 FTE (Flash Text Engine)를 사용하는 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>
내 플렉스 응용 프로그램은 원래 있었다 다음은 스타일 시트에 정의되어 있습니다.
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로 다시 한 번 변경했습니다. Ayuthaya는 본질적으로 Arial과 다른 태국인 캐릭터가 다릅니다.
여기 내 질문이 있습니다. 텍스트 모양이 Arial 글꼴에 더 가깝도록 FTE 구성 요소에서 태국어를 지원하는 덜 침략적인 방법이 있습니까? SWF 크기에 제약이 있기 때문에 글꼴을 포함시키지 않을 것입니다.
플렉스 앱의 로케일 설정에 따라이 스타일을 동적으로 설정하는 결과가 발생했습니다. 나는 특정한 로케일을 위해 Arial과 정확히 일치하지 않는 폰트로 괜찮습니다. 이것이 진짜 대답이라고 생각하지 마십시오. Arial이 올바르게 표시 할 수없는 경우 태국어 글리프를 지원하는 다른 글꼴로 폴백 할 수있는 방법이 있어야한다고 생각합니다. P. – P4ndaman