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

标签 actionscript-3 flash fonts internationalization text-rendering

我有一个多语言项目(目前有 13 种语言),它使用“Helvetica Neue”的许多不同字体变体,大部分是来自 LinoType Pro 字体集(包括西欧字符)的粗体、压缩和常规剪切,并且对于西里尔。我们将来可能会添加中文和日文版本。

我已经将项目设置为使用不同的 CSS 样式表,并根据用户选择的语言分别加载每个版本的字体,因此我可以使用不同的行高、字距调整和/或字体大小,以使所有内容保持原始外观,即使字体看起来一点也不相似。

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

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

最佳答案

我在中文中遇到了这个问题,但仅限于 OS X 和 Windows。我也不知道如何自动获取角色实际位置的正确指标。我最终得到了一个粗略的函数,每当我设置 TextField 时都会调用它:

  public static function adjustPositioning(field:TextField):void
  {
    if(OS != "MAC") return;
    var fontSize:int = field.defaultTextFormat.size as int;
    field.y += fontSize/5;
  }

我在代码中而不是 IDE 中设置了所有文本字段,因此这很容易。不过,我想这不是您正在寻找的解决方案!

关于actionscript-3 - 如何防止某些外语字体的文本位移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4583709/

相关文章:

actionscript-3 - 有什么方法可以在 ActionScript3 - FlashPlayer SWF 中呈现 HTML?

javascript - Flash 的打印 Action 可以从 JavaScript 触发吗?

css - QMessageBoxes 在 OSX 中有非常奇怪的行为

flash - "external"swf AS3 中的访问符号

actionscript-3 - 在 Flex 中计算字典长度

actionscript-3 - StageWebView在具有target = “_blank”的URL上缺少

flash - 我可以用 AS3 编辑 png 文件吗

c# - 使用 C# 在 Windows 窗体中嵌入 Flash 的示例

parsing - 如何在pdf中获得准确的字体大小(高度)

c# - 如何在我的 .Net Web 应用程序中使用/调用 ttf2eot(用于将 TTF 字体格式转换为 EOT 类型的应用程序)