2012-07-12 75 views
1

我有一個使用itemrenderer的spark列表組件。這是一個化身(圖像)和人名的列表。拉丁語和其他語言顯示正確,但對於泰語,它只顯示方框。請幫忙!Flex 4.6 Spark標籤不能正確顯示泰語

這是我使用的代碼:

<?xml version="1.0" encoding="utf-8"?> 
    <s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    xmlns:bd="com.bdement.imagecache.*" 
    autoDrawBackground="false" width="270" height="45"> 
    <fx:Script> 
     <![CDATA[ 
     override public function set data(object:Object):void { 
     userName.text = "อีฟ จันทโรทัย"; 
     } 
     ]]> 
    </fx:Script> 
    <s:HGroup click="onFriendClickReceived(event)" verticalAlign="middle" 
     color.normal="#000000" horizontalAlign="left" width="270" height="45"> 
     <s:Spacer width="10"/> 
     <bd:CachedImage id="userImage" cacheId="F32x32" width="32" height="32" 
     left="8" verticalCenter="0"/> 
     <s:Label id="userName" width="188" maxDisplayedLines="1" fontLookup="auto" 
     fontFamily="Arial Unicode MS, Arial" verticalCenter="0" /> 
    </s:HGroup> 
    </s:ItemRenderer> 

回答

2

你必須定義一個fontFamily中爲您的語言。找一個其中有泰國支持的字體,然後嵌入這樣的:

[Embed(source="font.ttf", mimeType="application/x-font", embedAsCFF="true", fontFamily="ThaiFontFamily")] 
private var ThaiFont:Class; 

然後在你的creationComplete處理函數嵌入字體是這樣的:

Font.registerFont(ThaiFont); 

這一點,你可以自由地使用你的fontFamily中的CSS後或直接在您的MXML標籤上。是這樣的:?

<s:Label id="userName" width="188" maxDisplayedLines="1" fontLookup="auto" fontFamily="ThaiFontFamily" verticalCenter="0" /> 
+0

仍然沒有工作:( – Luca 2012-07-23 12:26:41

+0

我不知道任何其他方式它應該工作你有沒有正確地按照每一個步驟 – Gio 2012-07-23 15:07:15

+0

是的,我試圖左右逢源CSS和MXML直接過,只有想不到可能是我下載的字體無法正常工作(Arial Unicode),你有沒有可以正常工作的字體? – Luca 2012-07-24 10:23:47