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

Flash 有人知道如何从AS 3中的一个子实例中删除父实例吗?,flash,actionscript-3,parent,Flash,Actionscript 3,Parent,我正在用Flash编写一个小程序,它有一个用户可以放在画布上的小窗口。我希望在按钮上有一个小的“关闭”按钮,但说按钮是窗口实例的子对象,并且有自己的类。既然AS 3没有全局变量,有人知道我怎么做吗?调用“parent.parent.parent.deleteWindow()”似乎不起作用。高层解释OK;如果有人想了解详细信息,我可以发布代码(类似于四个类)。您将希望您的Button类成为“EventDispatcher”。单击按钮后,您可以发送“closeEvent”并在窗口中侦听事件。这将允许

我正在用Flash编写一个小程序,它有一个用户可以放在画布上的小窗口。我希望在按钮上有一个小的“关闭”按钮,但说按钮是窗口实例的子对象,并且有自己的类。既然AS 3没有全局变量,有人知道我怎么做吗?调用“parent.parent.parent.deleteWindow()”似乎不起作用。高层解释OK;如果有人想了解详细信息,我可以发布代码(类似于四个类)。

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

如果希望主画布管理窗口,可以让画布侦听窗口上的事件。如果在按钮上触发该事件,则该事件将冒泡到您的窗口UIComponent,画布可以删除调度“closeEvent”的任何窗口


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

对于按钮,添加一个点击事件监听器,然后它的函数可以是这样的

function onClick($e:MouseEvent):void{
  var parentMC:MovieClip = e.target.parent;
}
不过,这是一种有点野蛮的方法,您应该考虑创建一种更安全的方法。 使用事件侦听/分派或更好的方式,OOP、MVC机器人腿等

祝你好运