0

我需要以某种方式做到这一点,我知道我可以使用本地连接,但我认为这不是真的必要。我应该能够像parent.foo()一样简单地调用函数 foo。

这是我的代码不起作用

        if(this.parent)
            (this.parent as MovieClip).foo();

我得到的错误是说函数 foo 不存在,但我确信它确实存在。

我不知道这是否重要,但孩子是一个班级,而不是 SWF 或任何东西,我只是这么说,因为当我用谷歌搜索可能的解决方案时,人们使用的方法是 SWF 的。

无论如何,谢谢你的帮助

4

2 回答 2

2

尽管 abhinav 的答案是正确的,但我还是鼓励您使用事件或信号而不是这种方法。您将使用这种方法将您的类紧密耦合。

影片剪辑嵌套:

//use bubbling to enable event listening in deeper displayObjects
dispatchEvent(newEvent("somethingHappened", true));

影片剪辑父级

child.addEventListener("somethingHappened", handlerFunction);

function handlerFunction(event:Event):void
{
     this.foo();
}
于 2013-05-27T08:28:00.347 回答
1

我相信您的班级作为孩子被添加到父母中。

然后,你可以说YourClass(parent).foo();

此外,任何深度嵌套的类也可以调用显示对象层次结构中的任何父级。例如 :ParentOfParentClass(parent.parent).foo();

于 2013-05-27T05:35:52.260 回答