2010-05-01 3 views
2

PopUpManager를 통해 만든 대화 상자가 닫힐 때 쉽게 알아낼 수있는 쉬운 방법이 있습니까? 어떤 유형의 메시지 또는 콜백 메커니즘이 의심 스럽지만, 그렇게 보이지는 않습니다. 한 경우, 누군가가 닫기를 누르고 대화 상자가 실제로 닫힐 때 메시지를주지 않으면 WindowTitle 구성 요소와 이벤트 만 사용하여 CLOSE를 발생시킵니다.FLEX : 대화 상자가 만들어 질 때를 아는 방법 PopUpManager가 닫히는 경우

답변

2

이것이 모든 필요에 대한 해결책인지 확실하지 않습니다. 이 같은해야

var win : IFlexDisplayObject = PopUpManager.createPopUp(Application.application as DisplayObject, TitleWindow, false) as IFlexDisplayObject; 
win.addEventListener(CloseEvent.CLOSE, onClose); 
PopUpManager.centerPopUp(win); 

그리고 제목 창 :이 같은

뭔가 : 당신이 TitleWindow를 사용하는 경우 그러나, 그냥 가까운 이벤트를 수신

<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> 
+0

그것이 내가 원래 생각한 것입니다. 그러나 그걸 조사했을 때 "X"를 클릭했을 때만 CloseEvent가 발생합니다. 필자가 구현 한 솔루션은 APPLY 및 CANCEL 이벤트로 DialogBaseEvent 클래스를 생성하고 사용자가 APPLY 또는 CANCEL을 눌렀을 때 발생시키는 솔루션입니다. 그런 다음 해당 이벤트를 사용하여 제거해야하는 이벤트 리스너를 적절히 제거하여 닫기를 트리거합니다. 이상적은 아니지만 제 경우에는 그 목적을 달성 할 것입니다. – WeeJavaDude

1

당신

dispatchEvent(new CloseEvent(CloseEvent.CLOSE, true, false)); 
PopUpManager.removePopUp(this); 

그런 다음 팝업을 보는 이벤트 리스너를 추가하십시오. closeevent.close 그리고 그 후에 작업하십시오.

저에게 맞습니다.

관련 문제