如何在同一Flash应用程序中使用设备字体显示多语言文本
更新: 我完全改变了这个问题,因为事实上,我很难在同一个应用程序中(同时)正确使用多种语言的设备字体 我必须使用设备字体(不能使用如何在同一Flash应用程序中使用设备字体显示多语言文本,flash,actionscript-3,apache-flex,textfield,text-formatting,Flash,Actionscript 3,Apache Flex,Textfield,Text Formatting,更新: 我完全改变了这个问题,因为事实上,我很难在同一个应用程序中(同时)正确使用多种语言的设备字体 我必须使用设备字体(不能使用.embedFonts=true属性),并且我不会以任何方式屏蔽、缩放、旋转或设置文本动画。我不担心消失的问题的副作用。我注意到英文字符显示正确,但其他字符显示不正确 例如,与以下编码字符类似: 和#2360कत 相反,上面的字符显示为空心正方形 有什么我需要使用/注意的吗?我已经研究过这些: System.useCodePage TextF
.embedFonts=true
属性),并且我不会以任何方式屏蔽、缩放、旋转或设置文本动画。我不担心消失的问题的副作用。我注意到英文字符显示正确,但其他字符显示不正确
例如,与以下编码字符类似:
和#2360कत代码>
相反,上面的字符显示为空心正方形
有什么我需要使用/注意的吗?我已经研究过这些:
- System.useCodePage李>
- TextField.defaultTextFormat李>
- setTextFormat(…)李>
- 文本格式对象李>
- 样式表对象李>
- 字体。枚举字体(true)李>
我要做的是显示来自不同来源和不同语言的单个单词(或短句)。换句话说。。。。许多文本字段将彼此分散,但每个文本字段将使用一种独立于其他文本字段的语言。一个可能是普通话,另一个是西班牙语,另一个是法语,英语。。。等等
要使字体“\u sans”(或任何支持的设备字体)以各种语言正确显示,我需要做些什么?如果您查看文档,它们有不同的用途
defaultTextFormat()
“指定应用于新插入文本的格式”
这意味着当你将文本输入TF时,它将采用指定的格式
和setTextFormat()
将format参数指定的文本格式应用于文本字段中的指定文本
如果在defaultTextFormat()
之后调用setTextFormat()
,则allready插入的文本将受到影响。但如果要添加新文本,则将使用defaultTextFormat()
格式
关于这方面的更多信息:
问题:如果未显示字符,您是否将embedeFont
用作true?如果是,则需要在字体中嵌入要显示的字符
关于我先前答案中字体的更多信息:
我想我可能最终解决了我的设备字体问题
在Flex中,修改样式字母间距而不是零(0)将破坏对亚洲字符的字体支持。也许只有拉丁字符是为了定制这些额外的样式
但是无论如何,对于遇到空心方块而不是实际的亚洲字符的用户,请验证您没有使用字符集可能不支持的样式属性
我使用正确样式设置标签的方法是覆盖标签setter访问器:
override public function set label(value:String):void {
super.label = value;
//If English characters / numerals (space letters by 1-pixel):
if(/[a-z0-9]/i.test(value)) {
this.setStyle("letterSpacing", 1);
} else {
this.setStyle("letterSpacing", 0);
}
}
嗨,谢谢你的回答。然而,我正在寻找一个解决方案,涉及使用设备字体。不过,其中一些看起来像是embedFont案例场景的绝佳解决方案。我重新编写了我的问题,以更好地反映我的目标。注意:起初,我认为可能是字体重量导致了这个问题,不是。字体反别名类型:高级;字体系列:“_sans”;工作也很好。