【问题标题】:Font Rendering Errors in Flash CS5?Flash CS5 中的字体渲染错误?
【发布时间】:2011-07-28 19:30:48
【问题描述】:

我的项目中的字体渲染突然出现错误。

下图是一个方形精灵,带有一个纹理和 2 个动态文本字段作为子项。

文字本身是正确的。底部字段是 32 位十六进制颜色(“H: 0xFFFFF4A1”),但您可以看到一些字符被拉伸(“x”、“4”和“1”)。在以 ARGB 格式列出每种颜色的第一个文本字段中也是如此。

使用的字体是 Myriad Pro Condensed。我最初使用 Myriad Pro Bold Condensed,我使用了几个月,但昨天突然字体变得比这里可见的更疯狂,所以我切换了。现在这个字体也被错误地渲染了。

我已经验证了字体。

我已经删除了我的 ASO 文件。

我在父精灵对象上使用 cacheAsBitmapMatrix,但 cacheAsBitmapMatrix 假设只影响移动设备,所以我不确定为什么它会在我的 ADL 下运行时呈现这样的字体(如果是问题)桌面。

newSwatch.cacheAsBitmapMatrix = new Matrix();
newSwatch.cacheAsBitmap = true;

这就是我调用字体的方式,它嵌入在我的库中。

//Create Text Field
private function swatchTextField():TextField
    {
    var myFont:Font = new MyFont();

    var textFormat:TextFormat = new TextFormat();
    textFormat.bold = true;
    textFormat.color = 0xFFFFFF;
    textFormat.font = myFont.fontName;
    textFormat.size = swatchSize / 10;

    var result:TextField = new TextField();
    result.antiAliasType = AntiAliasType.ADVANCED;
    result.blendMode = BlendMode.ERASE;
    result.autoSize = TextFieldAutoSize.LEFT;
    result.defaultTextFormat = textFormat;
    result.embedFonts = true;
    result.multiline = true;
    result.selectable = false;
    result.type = TextFieldType.DYNAMIC;

    return result;
    }

我不知道还能做什么。如果我切换到另一种字体,它可能会再次搞砸。当我单击它放大的对象时。放大时它也会旋转一点。这样做时,我可以看到字体错误略有变化。我几乎确信这是 cacheAsBitmapMatrix 的问题,但即使从代码中删除该错误仍然存​​在。

这是具有不同旋转的同一个对象:

任何线索都将不胜感激!


更新:

这个错误确实不是 Flash 的问题,而是 Apple 在 Mac OS X 10.6.7 中引入的一个错误,它影响了一些开放式字体的显示和打印。该错误已得到解决,现在可以下载修复程序:http://support.apple.com/kb/HT4605

【问题讨论】:

  • 只是一个建议,您可以尝试添加 cacheAsBitmap bool 并在结果 textField 上将其设置为 true(创建时)。有时当字体被渲染为矢量转换时可能会导致问题,所以这可能是一个解决方案。
  • 除非 newSwatch 是从 swatchTextField 创建的,在这种情况下我错了。 :( 只是猜测。
  • 没有变化。即使我从父对象中删除阴影以及删除 cacheAsBitmapMatrix 和 cacheAsBitmap 标志,以便它完全是矢量(除了基本图形和文本字段之间的纹理位图子项),字体仍然呈现不正确。请记住,在这个项目上工作了一个多月后才开始发生这种情况,虽然使用不同的字体似乎是一种解决方案,但新字体最终也会被“感染”。

标签: flash actionscript-3 fonts matrix rendering


【解决方案1】:

这发生在我身上,但我发现只需重新启动我的 mac 就可以解决它。我正在将我的一个空中应用程序移植到安卓平板电脑上,当 mac 播放时它实际上做同样的事情。

只是想我会添加这个。

【讨论】:

    【解决方案2】:

    这是一个 Mac/Flash CS5 错误。

    要解决此问题,您需要关闭 Flash 并重新打开它。该错误可能会消失。如果不行,尝试几次后,您需要降级到 OSX 10.6.6。

    查看下面的链接(@redHouse71)

    【讨论】:

      【解决方案3】:

      你用的是mac吗?这可能会对您有所帮助:

      Adobe bug about the issue

      升级到 Mac OSX 10.6.7 后,一些用户遇到了许多不同 OpenType 字体的字体渲染问题。在 Flash CS5 及更早版本中会出现此问题。

      【讨论】:

      • 正确!我完全期望这只是那些永远无法解决的无法解释的现象之一。我什至没有想到它与更新到 10.6.7 有关,我在这个问题开始之前就这样做了。谢谢!
      猜你喜欢
      • 2014-08-06
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      • 2013-12-21
      • 2015-03-29
      • 2011-10-31
      相关资源
      最近更新 更多