_root.obj1.obj2.obj3.obj4并访问嵌套对象

时间:2009-09-23 19:04:53

标签: flash actionscript-2

在actionscript中键入所有嵌套对象真的很长 这使得重命名对象变得很困难。

如果我不使用外部actionscript文件,则在Flash中 我可以输入 gunmovie.play(); 然后就可以了。 其中gunmovie是MovieClip的实例名称。

在外部actionscript文件中,我实现了MegaWeapon类, 但在其代码中,我必须知道整个对象路径 访问Flash UI中的内容。例如:

// works
_root.menu.level1.toppanel.megaweapon.gunmovie.play();

// doesn't work
this.gunmovie.play();

// works, but not in external actionscript files
gunmovie.play();

在目标C中有:IBOutlet。我真的希望Flash 9有 相似的东西。绝对路径不好。

我旁边没有自己的工作电脑,因此代码来自内存。

访问嵌套元素的简单方法是什么?

2 个答案:

答案 0 :(得分:1)

好吧,你可以在一个地方创建一个较低片段的引用,所以如果你必须重命名符号,那就不那么痛苦了。

例如

var someClip:MovieClip = __root.menu.level1.toppanel.megaweapon;

那么你可以做到

someClip.gunmovie.play()

应该与代码块中的第一行完全相同,但至少可以在一个地方定义对象路径,而不是每次使用它。

答案 1 :(得分:1)

我建议在MegaWeapon.as中创建一个指向gunmovie.play()的函数,这样你就可以调用它。

对于硬编码路径,您也可以在_root上注册MegaWeapon类,以便您的代码可以读取:

_root.megaWeapon1 = this;

// On _root
_root.megaWeapon1.gunmovie.play();

但是你需要注意碰撞。