首先将音标用String型的charCodeAt方法取得音标字符的Unicode 字符代码,然后在用String的静态方法fromCharCode在转成Unicode 字符就可以了。在xp与win7上测试成功。
然后将字体设成fontFamily="Charis SIL,Doulos SIL,Gentium,Arial Unicode MS,Lucida Sans Unicode,Arial,Serif"
下面是测试源程序
<?xml version="1.0" encoding="utf-8"?>
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="init()">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<s:TextInput text="源:" x="18" y="17" width="38"/>
<s:Label text="结果:" x="11" y="157"/>
<mx:TextInput id="source" text="ˌæbdʒʊ`reʃən" x="68" y="17" width="604" change="source_change()" />
<s:TextArea id="test1" fontFamily="Charis SIL,Doulos
SIL,Gentium,Arial Unicode MS,Lucida Sans Unicode,Arial,Serif"
fontSize="40" x="68" y="56" height="174"/>
<fx:Script>
<![CDATA[
public function init():void
{
var a:String=source.text;
var result:String="";
for (var i:int=0; i < a.length; i++)
{
result=result + String.fromCharCode(a.charCodeAt(i));
}
test1.text=result;
}
private function source_change():void
{
var a:String=source.text;
var result:String="";
for (var i:int=0; i < a.length; i++)
{
result=result + String.fromCharCode(a.charCodeAt(i));
}
test1.text=result;
}
]]>
</fx:Script>
</s:Application>