有人知道如何从AS 3中的一个子节点中删除父实例吗?

时间:2011-02-01 02:14:25

标签: flash actionscript-3 parent

我正在将一个小程序放在Flash中,该程序具有用户可以放在画布上的小窗口。我希望它们上面有一些“关闭”按钮,但是所说的按钮将是窗口实例的子代,并且有自己的类。由于AS 3没有全局变量,有人知道我怎么能这样做吗?调用“parent.parent.parent.deleteWindow()”似乎不起作用。高级解释OK;如果有人想看到细节,我可以发布代码(就像四个类一样)。

2 个答案:

答案 0 :(得分:1)

您希望Button类成为'EventDispatcher'。单击按钮后,您可以调度“closeEvent”并在窗口中侦听事件。这将允许您的窗口执行关闭和删除自身所需的逻辑。

如果您希望主Canvas管理窗口,您可以让画布在窗口上监听事件。如果事件在按钮上触发,它应该冒泡到你的窗口UIComponent,Canvas可以删除任何调用'closeEvent'的窗口。

如果你提供代码示例,我可以给你一个更具体的例子。

答案 1 :(得分:1)

为按钮添加一个点击事件监听器,然后它的功能可以是这样的

function onClick($e:MouseEvent):void{
  var parentMC:MovieClip = e.target.parent;
}
但是,这有点粗野,你应该考虑创建一种更安全的方法。 使用事件持续/调度或更好的signals,OOP,MVC RobotLegs等。

祝你好运