flex不能正确显示音标解决方法

    技术2024-11-11  19

    首先将音标用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>

    最新回复(0)