2011-11-14 1 views
0

특히 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 크기에 제약이 있기 때문에 글꼴을 포함시키지 않을 것입니다.

+0

플렉스 앱의 로케일 설정에 따라이 스타일을 동적으로 설정하는 결과가 발생했습니다. 나는 특정한 로케일을 위해 Arial과 정확히 일치하지 않는 폰트로 괜찮습니다. 이것이 진짜 대답이라고 생각하지 마십시오. Arial이 올바르게 표시 할 수없는 경우 태국어 글리프를 지원하는 다른 글꼴로 폴백 할 수있는 방법이 있어야한다고 생각합니다. P. – P4ndaman

답변

0

로케일을 기반으로 글꼴을 선택하는 것이 Adobe에 따른 올바른 접근 방법입니다. 포럼의 내 게시물에 대한 답변은 다음과 같습니다.

"레거시 텍스트 필드 (mx 구성 요소)는 글꼴 폴백을 사용하고 이전에는 정상적으로 작동했지만 알고리즘 방식의 폴백 (fall back)과 같은 지원 스타일 일 필요는 없었습니다. 텍스트 레이아웃 프레임 워크는 글꼴 선택에 대해 더욱 엄격합니다. 간단히 말해서, 예상 스크립트 영역에 맞는 글꼴을 선택해야합니다 .Arial은 태국 문자에 대한 올바른 선택이 아닙니다. Angsana 또는 Jasmine 또는 태국어 스크립트를 지원하는 문자를 사용해보십시오. "

나를위한 작품 : P