【问题标题】:Flash - symbols disappear from swf when I include TLFTextfieldFlash - 当我包含 TLFTextfield 时,符号从 swf 中消失
【发布时间】:2011-12-21 16:05:23
【问题描述】:

我有一个只包含库资产的 swf,没有代码。它由另一个具有代码的 swf 加载。

库 swf 有大约 280 个符号,可以为 AS3 导出。一切正常,直到我制作一个包含 TLFTextField 的新影片剪辑,而不是 TextField。当我构建 swf 时,没有警告或错误,但在运行时,我无法从库 swf 加载任何资产。 hasDefinition 总是为每个资产返回 false。

我把 swf 给了一个同事,他用 010 Editor 查看了 swf 中的所有定义,他说里面没有符号。我删除了 TLFTextField,重建了 swf,然后又给了他。他说现在它有280个符号。

不知何故,制作 TLFTextfield 并编译会搞砸 swf 中的每一个符号,即使在编译时没有收到警告或错误。关于它为什么这样做的任何想法?顺便说一句,我正在使用 CS5。

【问题讨论】:

  • 当我说“与 TextField 相对”时,我应该说“与经典文本相对”

标签: flash actionscript-3 textfield flash-cs5 tlf


【解决方案1】:

默认情况下,textLayout.swc(由 TLFTextField 使用)导出为 RSL(到单独的 SWZ 文件中),并且您的 SWF 会添加一个预加载器 SWF 存根,它负责加载该 SWZ 文件。

不知道如何添加预加载器,但如果我使用 Flashdevelop 检查 SWF,我只能看到来自预加载器的符号。不是我为动作脚本导出的符号,我假设主 SWF 已添加到预加载器存根并由预加载器以某种方式加载。

您必须转到发布设置 -> 动作脚本 3.0 设置 -> 库选项卡 -> 选择 textLayout.swc 并在底部将默认链接更改为“合并到代码中”。希望这能解决您的问题。

【讨论】:

  • 感谢 Josha,解决了问题 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-07
  • 2021-12-21
相关资源
最近更新 更多