Apache flex 无法绘制值为>;的Unicode字符;Flex中的0xFFFF
我试图从Unicode字体中绘制一个值为0x1d11e的字符(这是Sonata字体中的高音谱号字符) 我在一篇文章中读到,我必须将Unicode字符>0xFFFF转换为使用UTF-16代理项对,但这似乎不起作用 这是我的密码:Apache flex 无法绘制值为>;的Unicode字符;Flex中的0xFFFF,apache-flex,Apache Flex,我试图从Unicode字体中绘制一个值为0x1d11e的字符(这是Sonata字体中的高音谱号字符) 我在一篇文章中读到,我必须将Unicode字符>0xFFFF转换为使用UTF-16代理项对,但这似乎不起作用 这是我的密码: [Embed(source='C:/WINDOWS/Fonts/SonataStd.otf', fontName="Sonata__", mimeType="application/x-font")] private var font1:Class; public
[Embed(source='C:/WINDOWS/Fonts/SonataStd.otf',
fontName="Sonata__", mimeType="application/x-font")]
private var font1:Class;
public function draw():void {
var txt:TextField = new TextField();
var fmt:TextFormat = new TextFormat("Sonata__", 40);
var clefChar:uint = 0x1d11e
var p1:uint = (((clefChar - 0x10000) >> 10) & 0x3ff) + 0xd800;
var p2:uint = ((clefChar - 0x10000) & 0x3ff ) + 0xdc00;
txt.text = String.fromCharCode(p1, p2);
txt.setTextFormat(fmt);
txt.embedFonts = true;
addChild(txt);
当我运行这段代码时,不会绘制任何内容。如果我尝试绘制一个2字节的Unicode字符,它会工作
这是在Flex3上,在Flash Player 10上运行
谢谢。可能的副本