FLEX:如何知道创建对话框何时抛出PopUpManager Closes

时间:2010-05-01 16:02:28

标签: flex dialog popup

当通过PopUpManager创建的Dialog关闭时,是否有一种简单的方法可以一致地找出答案。我会怀疑某种类型的消息或回调机制,但似乎没有。在一种情况下,我使用WindowTitle组件和事件,只有当有人按下关闭时才触发CLOSE,并且当对话框实际关闭时不发出任何消息。

2 个答案:

答案 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并在此之后完成您的工作。

适合我。