当通过PopUpManager创建的Dialog关闭时,是否有一种简单的方法可以一致地找出答案。我会怀疑某种类型的消息或回调机制,但似乎没有。在一种情况下,我使用WindowTitle组件和事件,只有当有人按下关闭时才触发CLOSE,并且当对话框实际关闭时不发出任何消息。
答案 0 :(得分:2)
不确定这是否是满足所有需求的解决方案。但是,如果你使用的是TitleWindow,只需听一下close事件:
这样的事情:
var win : IFlexDisplayObject = PopUpManager.createPopUp(Application.application as DisplayObject, TitleWindow, false) as IFlexDisplayObject;
win.addEventListener(CloseEvent.CLOSE, onClose);
PopUpManager.centerPopUp(win);
标题窗口应该是这样的:
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" showCloseButton="true" close="closeHandler(event)">
<mx:Script>
<![CDATA[
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
protected function closeHandler(event:CloseEvent):void
{
PopUpManager.removePopUp(this);
}
]]>
</mx:Script></mx:TitleWindow>
答案 1 :(得分:1)
您可以使用以下内容手动调用关闭:
dispatchEvent(new CloseEvent(CloseEvent.CLOSE, true, false));
PopUpManager.removePopUp(this);
然后添加一个事件监听器,查看弹出窗口closeevent.close
并在此之后完成您的工作。
适合我。