我有一个多语言项目(目前有 13 种语言),它使用“Helvetica Neue”的许多不同字体变体,大部分来自 LinoType Pro 字体集(包括西欧字符)的粗体、浓缩和常规切割,西里尔字母也是如此。我们将来可能会添加中文和日文的变体。
我已将项目设置为使用不同的 CSS 样式表并分别加载每个版本的字体,具体取决于用户选择的语言,因此我可以有不同的行高、字距调整和/或字体大小,以使所有内容保持原始外观,即使字体看起来一点也不相似。
所有这一切都很好,除了一个问题:由于某种原因,所有西里尔字母似乎都被取代了。它们出现在正确基线下方 2-3 个像素处,并且实际上突出到文本字段的底部边框,即使该字段设置为自动调整大小也是如此。当我使用 时textfield.getCharBoundaries()
,所有值似乎都是正确的,即使它们显然没有正确呈现。
为了使一切看起来整洁,我当然可以根据语言和字体大小手动上下移动所有有问题的文本字段,但我想知道是否有某种方法可以防止或至少检测这种位移以便自动处理调整——Flash Player 应该有一些关于事物如何呈现的信息,不是吗?你们中有人遇到过类似的问题吗?或者更好:一个解决方案?