来自movieclip内的swc的实例类

时间:2011-02-03 18:58:52

标签: flash actionscript-3 swc

我正在尝试使用swc编译的资产和代码。 在新的fla中,我选择导出时要包含的swc。 在代码工作的时间轴中创建实例时,我可以看到swc内部的资产,并从同一对象中跟踪属性。 问题是只有在动画片段中做同样的事情时才能到达资源(movieclip),但我仍然可以跟踪该类的属性。

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

files(这是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”这样的新类)。

谢谢Daniel!

2 个答案:

答案 0 :(得分:1)

在模板

中为tf添加一个链接ID

答案 1 :(得分:0)

fixed
TextField初始化添加到TextBox.as(以便在跟踪tfield.text时避免空引用)并将tf: TextBox重命名为tb:TextBox以使名称与tf不同阶段