1

我有一个使用 itemrenderer 的火花列表组件。这是一个化身(图像)和人名的列表。拉丁语和其他语言可以正确显示,但对于泰语,它只显示方框。请帮忙!

这是我使用的代码:

<?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>
4

1 回答 1

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" />
于 2012-07-12T12:40:05.970 回答