【问题标题】:Issue: Dynamic text rendered incorrectly when loaded from external SWF问题:从外部 SWF 加载时动态文本呈现不正确
【发布时间】:2015-04-15 16:11:47
【问题描述】:

在我之前的游戏项目中,所有 HUD 元素都在主 FLA 文件中。我现在将它们移动到外部 SWF 文件以清理我的项目。

但是我遇到了一个我不太明白的问题。

作为一个测试用例,我将一个 HUD 元素移至一个新的 FLA 文件并将其编译为 SWF。我使用 ActionScript 3 成功加载了它。没有任何进一步的代码更改,HUD 元素显示在它之前所做的位置,但所有动态文本字段要么: a) 不显示文字 b)在文本字段中的错误位置显示文本(在超出字段边界的位置被截断) 静态文本显示正常。我猜 hit 与字体嵌入有关。

我使用的是嵌入在我的主 FLA 中的单一字体。对于我的 HUD FLAI 尝试了三件事,但都得到了完全相同的结果: 1)不嵌入字体 2) 确保嵌入设置与主 FLA 的设置相同 3) 确保嵌入设置的名称与主 FLA 不同

我使用的是经典文本。

以下图片链接说明了问题所在。左加载带有 HUD 元素的 SWF,右加载主 SWF 中的 HUD 元素。正如你所看到的,一些文本被移动了,而另一些则完全不存在。

difference(很遗憾我不能发图片...)

任何帮助将不胜感激!

【问题讨论】:

  • 我认为这是您的文本字段的定位问题,请尝试验证。
  • 不,文本字段位于正确的位置。追踪证实了这一点。
  • 我找到了解决方法。如果我在加载的 SWF 中将字体更改为完全不同的字体,则显示正常。似乎 Flash 会因为两次使用相同的字体而感到困惑?
  • 嗨,你可以试试“textfield.embedFonts=false;”可以正确渲染
  • 感谢@mdemir 有效。我现在已经为 UI 元素的构造函数中的所有文本字段添加了该行,它会按应有的方式显示所有文本!如果您将您的回复作为答案发布,我可以将其标记为答案。

标签: actionscript-3 flash fonts embed swfloader


【解决方案1】:

你可以试试

textfield.embedFonts=false; 

可以正确渲染

【讨论】:

  • 这确实是解决方案。我的印象是,如果您不手动将字体嵌入到 Flash 库中,则字体将不会被嵌入,但显然它仍处于编译时,除非它被明确标记为不。
猜你喜欢
  • 2011-02-12
  • 2013-02-05
  • 2011-07-17
  • 1970-01-01
  • 2016-11-09
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多