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