Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在同一Flash应用程序中使用设备字体显示多语言文本_Flash_Actionscript 3_Apache Flex_Textfield_Text Formatting - Fatal编程技术网

如何在同一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”;工作也很好。