Creating a self-closing Alert control in Flex

The following example shows how you can create a self-closing Flex Alert control by creating a timer and using the static PopUpManager.removePopUp() method to remove the Alert after a certain time period.

Full code after the jump.

View MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2009/04/08/creating-a-self-closing-alert-control-in-flex/ -->
<mx:Application name="Alert_PopUpManager_removePopUp_test"
        xmlns:mx="http://www.adobe.com/2006/mxml"
        backgroundColor="white"
        initialize="init();">

    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.events.CloseEvent;
            import mx.managers.PopUpManager;

            private var alrt:Alert;
            private var alrtTimer:Timer;

            private function init():void {
                alrtTimer = new Timer(5000, 1);
                alrtTimer.addEventListener(TimerEvent.TIMER_COMPLETE, removeAlert);
            }

            private function showAlert():void {
                alrt = Alert.show("I'm an Alert control and I will close in 5 seconds unless closed by a user.", "Self closing Alert", Alert.OK, this, alrt_close);
                alrtTimer.reset();
                alrtTimer.start();
            }

            private function alrt_close(evt:CloseEvent):void {
                alrtTimer.stop();
                lbl.text = "Closed by user.";
            }

            private function removeAlert(evt:TimerEvent):void {
                PopUpManager.removePopUp(alrt);
                lbl.text = "Removed by application.";
            }
        ]]>
    </mx:Script>

    <mx:Button label="Show Alert" click="showAlert();" />
    <mx:Label id="lbl" />

</mx:Application>

6 thoughts on “Creating a self-closing Alert control in Flex

Comments are closed.