如何避免在Flex中显示多个警报窗口

时间:2011-02-18 06:34:32

标签: flex actionscript-3 flex3 alert

我的应用程序中有一个计时器。每30分钟,它将点击Web服务并获取数据并更新UI。申请工作正常,直到昨天。突然间,由于某些问题,Web服务暂时无法使用。在此期间,应用程序在警报窗口中多次显示RPC错误(超过100个警报框)。由于这个警告框,我的应用程序被绞死,我无法做任何事情。

我尝试了几种方法,但没有任何效果。最后,我试图使用一个标志。在所有方法中,这看起来很有希望。所以我已经实现了它。基本上,在这种方法中,每当我们打开警报时,我们都会设置一个标志。当打开和关闭警报时,我们将重置此标志。但它没有按预期工作。是否有任何方法可以帮助我们避免多个警报窗口。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

我会编写打开警报的包装器,并且只使用这个包装器,而不是代码中的Alert.show:

public class AlertWrapper {

   private static var lastAlert:Alert;

   public static function showAlert(text:String, title:String):void {
       if (lastAlert) {
            PopUpManager.removePopUp(lastAlert);
            //or
            //return; //ignore last alert
       }
       lastAlert = Alert.show(text, title, null, 4, onAlertClose);
   }

   private static function onAlertClose(event:CloseEvent):void {
       lastAlert = null;
   }
}

缺少进口,但我希望这个想法很明确。