我需要以某种方式做到这一点,我知道我可以使用本地连接,但我认为这不是真的有必要。我应该能够像 parent.foo()一样简单地调用函数foo。
这是不正在运行的代码。
if(this.parent)
(this.parent as MovieClip).foo();
我得到的错误是说函数foo不存在,但我确信它确实存在。
我不知道这是否重要,但孩子是一个班级,而不是SWF或其他什么,我只是这样说,因为当我用Google搜索可能的解决方案时,人们使用的方法是SWF的。
无论如何,谢谢你的帮助
答案 0 :(得分:2)
尽管abhinav回答是正确的,但我鼓励你使用事件或信号而不是这种方法。您将通过这种方法紧密结合您的课程。
MovieClip嵌套:
//use bubbling to enable event listening in deeper displayObjects
dispatchEvent(newEvent("somethingHappened", true));
MovieClip父
child.addEventListener("somethingHappened", handlerFunction);
function handlerFunction(event:Event):void
{
this.foo();
}
答案 1 :(得分:1)
我相信你的班级会在孩提时加入。
然后,你可以说YourClass(parent).foo();
此外,任何深层嵌套的类也可以调用显示对象层次结构中的任何父级。例如:ParentOfParentClass(parent.parent).foo();