如何防止某些外语字体的文本位移?

wel*_*rat 23 flash fonts internationalization actionscript-3 text-rendering

我有一个多语言项目(目前有13种语言),它使用了许多不同的字体变体"Helvetica Neue",大多是LinoType Pro字体集(包括西欧字符)的粗体,浓缩和常规剪辑,以及西里尔字母.我们可能会在未来添加中文和日文版本.

我已经设置了项目以使用不同的CSS样式表,并根据用户选择的语言单独加载每个版本的字体,因此我可以使用不同的行高,字距调整和/或字体大小来使所有内容保持原始外观,即使字体看起来没什么相似之处.

所有这些都很有效,除了一个问题:由于某种原因,所有西里尔字母似乎都被取代了.它们显示在正确基线下方2-3个像素处,实际上突出显示在文本字段的下边框上,即使该字段设置为自动调整大小.当我使用时textfield.getCharBoundaries(),所有值似乎都是正确的,即使它们显然没有正确呈现.

为了使一切看起来整洁,我当然可以根据语言和字体大小手动上下移动所有有问题的文本字段,但我想知道是否有某种方法可以防止或至少检测到这种位移以便自动处理调整 - Flash Player应该有关于如何呈现事物的某种信息,不是吗?你们有没有类似的问题?或者更好:解决方案?

evi*_*iko 1

我在阿拉伯语方面也遇到过类似的问题。似乎 Adob​​e 应用程序在使用非英语语言时总是存在问题。在某些语言中,在 Flash Player 中,文本看起来已损坏,但在 Flash Player 中播放 Flash 时,问题并不存在。

我不确定什么可以解决您的问题,但您可以尝试一些解决方法。

尝试这个解决方法,但它会变得更加复杂: - 在每次按键时,将按下的字符作为图像插入。它可以解决您的问题,但需要更多时间编写代码