运行时字体与静态文本中嵌入的字体不一致?

时间:2010-07-11 07:06:51

标签: flash actionscript-3 fonts embedded-fonts

如果有人遇到这个问题,我很好奇:

  • 我将(嵌入)字体保存在运行时加载的外部文件(fonts.swf)中。非常标准。
  • 我还使用了Flash IDE中生成的一堆UI图稿。这些艺术作品中的一些包含static文本字段(因此,不适当的TextField可以更改。只是冻结的字形)。

问题在于:如果我在任何静态文本字段中使用相同的字体,然后将相同的字体嵌入到我的运行时字体集合中,则运行时字体将拒绝呈现。如果您使用embeddedFonts=true设置文本字段以使用未嵌入的字体,则会产生相同的效果。如果我将静态文本字段更改为使用不同的字体,则运行时字体可以正常工作。

注意:如果在运行时加载嵌入字体,这似乎只是一个问题。如果他们被合并到主.SWF,那么没有问题。

根据我(非常有限)对静态文本字段的理解,它们会自动嵌入它们设置使用的字体,但所需的最小字符数。因此,他们嵌入了部分定义。我怀疑当我尝试在运行时加载相同的字体(并通过Font.registerFont发布)时,Flash检测到一个同名的嵌入式字体,并且无声地失败。但我真的不知道。有没有解决这个问题的方法?我想保持动态和静态文本字段之间的排版一致性,但这似乎不可能......

2 个答案:

答案 0 :(得分:1)

我知道Flash 8及更低版本无法实现这一点。我不认为你能做到这一点,我甚至在他们的日子里回答Macromedia,如果他们能做到这一点,那就是NO。

检查文档,我理解这是不能完成的。 也许我太老了。

答案 1 :(得分:1)

Adob​​e确实需要让字体更容易。我做过关于字体和文本字段的噩梦。有一段时间,我试图完全理解它们,但从那以后它们已经完全磨损了我。现在我不是试图理解它们,而是专注于让它们发挥作用。

当我遇到问题时,我会从头开始重做所有字体。我确保1)它们都是通过代码中的CSS和@Embed标签嵌入的(我不相信Flash IDE的字体)和2)我在舞台上有一个字体实例。对不起,这不是一个真正的“解决方案”,但每当我按照这些步骤操作时,我都会重新使用字体。

然后,我伸出手指祈祷他们不要休息。当他们不可避免地这样做时,我开始诅咒Adobe的名字比史蒂夫乔布斯更糟糕并重新开始。洛尔。

自从我上次修复以来,我们项目中的字体在很长一段时间内都没有“破坏”。大多数错误都与字体的粗体版本有关。为了简化事情,我只是避免使用粗体。