0

我正在尝试使用来自 swc 的已编译资产和代码。在一个新的 fla 中,我选择导出时要包含的 swc。当在代码的时间轴中创建实例时,我可以看到 swc 内的资产并跟踪来自同一对象的属性。问题是仅在影片剪辑中执行相同操作时,无法访问资产(影片剪辑),但我仍然可以从类中跟踪属性。

我已经上传了工作文件:master.fla 是创建 swc 的文件。template.fla 是我测试 swc 的地方。

文件(这是 cs4 .fla + .swc + .as)

编辑: 如何重现我遇到的问题:

.1 创建一个新的master.fla 并使其编译成一个swc。

.2 在master.fla 时间轴中创建一个Textfield,给它一个实例名称“tfield”并从中制作一个MovieClip。

.3 创建一个 TextBox.as 类并定义一个公共变量“tfield”(这将获取您在电影中拥有的 TextField 资产)。

.4 在库中将新创建的 MovieClip 链接到 TextBox 类。

.5 导出,您应该会看到 TextBox 类的一个实例。

使用swc:

.1 创建一个新的fla并使其使用master.swc作为源

.2 打开时间轴中的第一帧并编写以下代码:

var tf : TextBox = new TextBox();
addChild(tf)

这应该可以按预期工作,创建一个 TextBox 的实例,您应该会看到里面的 TextField。

.3 注释前面的代码并编写相同的代码,但这次是在 MovieClip 中并将其放到时间轴上。尽管代码有效,但无法访问“tfield”。你也看不到。

解决方案:正如 Daniel 所指出的,只需为包含代码的 MovieClip 提供一个链接 ID(不要提供 TextBox 类 ID,只需让它创建一个新类,如“lalala”)。

谢谢丹尼尔!

4

2 回答 2

1

在模板中向 tf 添加链接 id

于 2011-02-04T03:24:02.903 回答
0

修复
了添加TextField初始化TextBox.as(以避免跟踪时出现空引用tfield.text)并重命名tf: TextBox为以使名称与舞台上的tb:TextBox名称不同tf

于 2011-02-03T22:52:07.883 回答