Как избежать отображения нескольких окон предупреждений в Flex - PullRequest
0 голосов
/ 18 февраля 2011

У меня есть таймер в моем приложении. Каждые 30 минут он будет работать с веб-службами, получать данные и обновлять пользовательский интерфейс. Приложение работало до вчерашнего дня. Внезапно из-за какой-то проблемы веб-сервисы были недоступны в течение некоторого времени. В течение этого периода приложение отображало ошибку RPC несколько раз (более 100 блоков предупреждений) в окне предупреждений. Из-за этого окна с предупреждениями мое приложение зависло, и я ничего не смог сделать.

Я пробовал несколько подходов, но ничего не получалось. Наконец, я попытался использовать флаг. Во всех подходах это выглядело многообещающе. поэтому я реализовал это. В основном, в этом подходе, когда мы открываем предупреждение, мы устанавливаем флаг. При открытии и закрытии предупреждения мы сбрасываем этот флаг. Но это не сработало, как ожидалось. Есть ли какой-нибудь подход, который может помочь нам избежать нескольких окон предупреждений.

Пожалуйста, помогите мне, чтобы решить эту проблему.

1 Ответ

2 голосов
/ 18 февраля 2011

Я бы написал оболочку для открытия оповещений и использовал бы только эту оболочку, а не 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;
   }
}

Импорт отсутствует, но я надеюсь, что идея ясна.

...