2013-07-13 5 views
0

open 이벤트가 발생하지 않고 popup.open 메서드가 호출 될 때 문제가 발생하는 즉시 popup.close 메서드를 사용하여 팝업을 닫습니다. 문제는 팝업 컨테이너의 내용이 생성되었지만 버튼을 클릭 할 수 없도록 스테이지에서 완전히 제거되지 않았기 때문입니다. 아래 코드를 실행하고 두 번째 버튼을 클릭하는 방법에 대한 해결책을 알려주십시오.플렉스 4.6 모바일에서 열린 메서드를 호출 한 직후 팝업을 닫는 방법

<?xml version="1.0" encoding="utf-8"?> 

<fx:Script> 
    <![CDATA[ 
     import flash.utils.setInterval; 

     private var sprCtrl:SpinnerControlWithText; 
     private var timer:Timer = new Timer(1); 

     protected function button1_clickHandler(event:MouseEvent):void 
     { 
      sprCtrl = new SpinnerControlWithText(); 
      sprCtrl.open(this,true); 
      sprCtrl.x =0; 
      sprCtrl.y = 0; 
      sprCtrl.width = this.width; 
      sprCtrl.height = this.height; 
      sprCtrl.close();//Here i have to close this in backend response 
     } 

    ]]> 
</fx:Script> 

<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 

<s:Button click="button1_clickHandler(event)" label="Click Me" horizontalCenter="0" verticalCenter="0"/> 

<?xml version="1.0" encoding="utf-8"?>  
<s:SkinnablePopUpContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           width="100%" height="100%" xmlns:control="control.*" creationComplete="skinnablepopupcontainer1_creationCompleteHandler(event)"> 
    <fx:Script> 
     <![CDATA[ 
      import mx.events.FlexEvent; 

      [Bindable] 
      public var msg:String = "Please wait..."; 
      [Bindable] 
      public var colorToSet:uint = 0x000000; 

      protected function skinnablepopupcontainer1_creationCompleteHandler(event:FlexEvent):void 
      { 
       // TODO Auto-generated method stub 
       trace("busy cursor creation complete"); 
      } 

     ]]> 
    </fx:Script> 

    <s:BorderContainer id="spinnerBorderContainer" height="100%" width="100%" backgroundColor="#000000" backgroundAlpha=".5"> 
     <s:layout> 
      <s:VerticalLayout verticalAlign="middle" horizontalAlign="center" /> 
     </s:layout> 
     <s:BorderContainer height="23%" width="32%" backgroundColor="#FFFFFF" backgroundAlpha=".7"> 
     <s:layout> 
      <s:VerticalLayout verticalAlign="middle" horizontalAlign="center" /> 
     </s:layout> 
      <!--<control:Spinner id="spinner" tickColor="{colorToSet}" size="40" />--> 
      <s:BusyIndicator id="spinner" symbolColor="white" rotationInterval="200" /> 
      <s:Label text="{msg}" fontWeight="normal" textAlign="center" /> 
     </s:BorderContainer> 
    </s:BorderContainer> 

</s:SkinnablePopUpContainer> 

답변

0

문제는 PopUpManager.removePopUp (sprCtrl)을 첨가 한 후 고정되었다;

sprCtrl.close();//Here i have to close this in backend response 
PopUpManager.removePopUp(sprCtrl);