首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

在弹出alert提示框之后,有没有用代码控制的方法自动删除一个alert提示框?该如何处理

2012-04-06 
在弹出alert提示框之后,有没有用代码控制的方法自动删除一个alert提示框???在弹出alert提示框之后,有没有

在弹出alert提示框之后,有没有用代码控制的方法自动删除一个alert提示框???
在弹出alert提示框之后,有没有用代码控制的方法自动删除一个alert提示框???

[解决办法]
AlertManager.as:

JScript code
package{        import flash.display.Sprite;    import flash.events.TimerEvent;    import flash.utils.Dictionary;    import flash.utils.Timer;        import mx.controls.Alert;    import mx.events.CloseEvent;    import mx.managers.PopUpManager;    import mx.utils.UIDUtil;        public class AlertManager    {                private static var alerts:Dictionary = new Dictionary();                private static var timers:Dictionary = new Dictionary();                public static function showAlert(timeout:int = 0, text:String = "", title:String = "",                 flags:uint = 0x4, parent:Sprite = null, closeHandler:Function = null,                 iconClass:Class = null, defaultButtonFlag:uint = 0x4):Alert        {            var alert:Alert = Alert.show(text, title, flags, parent, closeHandler, iconClass,                     defaultButtonFlag);            alert.id = "Alert" + UIDUtil.createUID();            if (timeout > 0)            {                var timer:Timer = new Timer(timeout, 1);                timer.addEventListener(TimerEvent.TIMER_COMPLETE, tiemrCompleteHandler);                timer.start();                alert.addEventListener(CloseEvent.CLOSE, alertCloseHandler);                alerts[timer] = alert;                timers[alert.id] = timer;            }            return alert;        }                private static function tiemrCompleteHandler(event:TimerEvent):void        {            if (alerts[event.target])            {                var alert:Alert = alerts[event.target] as Alert;                if (timers[alert.id])                {                    var timer:Timer = timers[alert.id];                    delete timers[alert.id];                    delete alerts[timer];                }                PopUpManager.removePopUp(alert);                alert.dispatchEvent(new CloseEvent(CloseEvent.CLOSE, false, false, 0));            }        }                private static function alertCloseHandler(event:CloseEvent):void        {            var alert:Alert = event.target as Alert;            if (event.detail != Alert.YES && event.detail != Alert.NO &&                     event.detail != Alert.OK && event.detail != Alert.CANCEL)            {                if (timers[alert.id])                {                    var timer:Timer = timers[alert.id] as Timer;                    timer.stop();                    if (alerts[timer])                        delete alerts[timer];                    delete timers[alert.id];                }            }        }    }    } 

热点排行