所以我使用此代码来嵌入我的 .swf 文件。我正在为我的库中的每个 Assets 创建类。
[Embed('assets/assets.swf', symbol='game.menu.levels')]
public static const LEVELS_MENU:Class;
它工作得很好,但是我如何访问多个深度的子元素?
到目前为止我有这个:
this.object = new R.LEVELS_MENU();
var child_element:MovieClip =
this.object.getChildByName("child_element") as MovieClip;
还有比这样做更好的方法吗:
var child_child_element:DisplayObjectContainer =
DisplayObjectContainer(
child_element.getChildByName("child_child_element")
);
var child_child_child_element:DisplayObjectContainer =
DisplayObjectContainer(
child_child_element.getChildByName("child_child_child_element")
);
有没有办法可以用点语法来做到这一点:
child_element.child_child_element.child_child_child_element...
最佳答案
据我所知,还没有。
可能有一个解决方法。
如果您从 Flash IDE 创建了这些子项,您应该能够通过如下引用直接访问它们:
MovieClip(this.object).child1.child2.child3.child4;
或者,如果您在 swf 中手动执行 MovieClip 初始化(新操作符),您也可以像这样手动创建这些引用:
child["child_child_name"] = child_child;
虽然这对于影片剪辑来说并不重要,因为它们是动态的,所以你可以这样做:
child.child_child_name = child_child;
最后两个当然是在 .swf 代码中;
关于flash - AS3 嵌入访问子影片剪辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7376065/