0

popup.open メソッドが呼び出され、open イベントが発生していないときに問題に直面しています。すぐに popup.close メソッドを使用してポップアップを閉じています。問題は、ポップアップ コンテナー内のコンテンツが作成されているが、ステージから完全に削除されていないため、ボタンをクリックできないことです。以下のコードを実行して、2回目からボタンをクリックする方法を教えてください。

<?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>
4

1 に答える 1

0

PopUpManager.removePopUp(sprCtrl); を追加した後、問題は修正されました。

sprCtrl.close();//Here i have to close this in backend response
 PopUpManager.removePopUp(sprCtrl);
于 2013-07-13T15:49:09.510 に答える