Flash - 当我包含TLFTextfield时,符号从swf中消失

时间:2011-11-04 00:43:41

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

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

库swf有大约280个符号,这些符号是为AS3导出的。一切正常,直到我创建一个包含TLFTextField的新movieclip,而不是TextField。当我构建swf时,没有警告或错误,但在运行时,我无法从库swf加载任何资产。 hasDefinition始终为每个资产返回false。

我把swf给了一位同事,他使用了010编辑器查看了swf中的所有定义,他说没有符号。我删除了TLFTextField,重建了swf,并再次将它交给了他。他说现在它有280个符号。

以某种方式制作TLFTextfield并进行编译会搞乱swf中的每个符号,即使在编译时没有收到任何警告或错误。有关它为什么这样做的任何想法?顺便说一下,我正在使用CS5。

1 个答案:

答案 0 :(得分:0)

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

不知道如何添加预加载器,但如果我使用Flashdevelop检查SWF,我只会看到预加载器中的符号。不是我为Action Script导出的符号,我假设主SWF被添加到预加载器存根并由预加载器以某种方式加载。

您必须转到发布设置 - >动作脚本3.0设置 - >库标签 - >选择textLayout.swc并在底部将Default Linkage更改为“Merged into code”。这有望解决您的问题。