我有一个使用itemrenderer的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>
答案 0 :(得分:2)
您必须为您的语言定义fontFamily。获取一个支持泰语的字体,然后嵌入如下:
[Embed(source="font.ttf", mimeType="application/x-font", embedAsCFF="true", fontFamily="ThaiFontFamily")]
private var ThaiFont:Class;
然后在你的creationComplete处理程序中嵌入这样的字体:
Font.registerFont(ThaiFont);
在此之后,您可以自由地在CSS中使用fontFamily或直接在MXML中使用您的标签。像这样:
<s:Label id="userName" width="188" maxDisplayedLines="1" fontLookup="auto" fontFamily="ThaiFontFamily" verticalCenter="0" />