Flash CS5中的字体渲染错误?

时间:2011-04-03 21:48:31

标签: flash actionscript-3 fonts matrix rendering

我突然在项目中遇到字体渲染错误。

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

enter image description here

文本本身是正确的。底部字段是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的一个问题,但错误仍然存​​在甚至从代码中删除它。

这是具有不同轮换的相同对象:

enter image description here

任何线索都会非常感激!


更新

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

3 个答案:

答案 0 :(得分:2)

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

Adobe bug about the issue

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

答案 1 :(得分:0)

这是一个Mac / Flash CS5错误。

要解决此问题,您需要关闭Flash并重新打开它。这个bug可能会消失。如果没有,经过几次尝试,你需要降级到OSX 10.6.6。

请参阅以下链接(@ redHouse71)

答案 2 :(得分:0)

这发生在我身上,但我发现我的mac的简单重启解决了它。我正在将我的一个空中应用程序移植到Android平板电脑上,当Mac正在播放时,它实际上做了同样的事情。

我想我会加入它。