Flash AS3将变量从子类传递给父类

时间:2013-05-27 04:46:20

标签: actionscript-3 communication

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

这是正在运行的代码。

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

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

我不知道这是否重要,但孩子是一个班级,而不是SWF或其他什么,我只是这样说,因为当我用Google搜索可能的解决方案时,人们使用的方法是SWF的。

无论如何,谢谢你的帮助

2 个答案:

答案 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();