FLEX: программно удалить оповещение? - PullRequest
4 голосов
/ 26 февраля 2009

Мне нужно программно удалить предупреждение.

Вот почему: Мое приложение использует BrowserManager для включения глубоких ссылок на основе содержимого в части #hash URL-адреса. Если оповещение в данный момент активировано, и пользователь нажимает кнопку «Назад», приложение вернется в прежнее состояние. Но Оповещение все еще будет, и во многих случаях не имеет значения в этот момент.

Так есть ли способ программно удалить оповещение? поэтому, когда фрагмент хеша изменяется, я могу удалить его.

Спасибо!

Ответы [ 3 ]

9 голосов
/ 26 февраля 2009

Оказывается, функция Alert.show возвращает ссылку Alert, а затем просто использует PopUpManager, чтобы добавить ее в список отображения. так что если вы перехватываете ссылку возврата при вызове Alert.show , вы можете указать PopUpManager удалить ее. :)

4 голосов
/ 26 февраля 2009

Это можно сделать, сохранив объект Alert в качестве данных элемента, а затем установив для его свойства visible значение false, когда вы закончите с ним. В следующий раз, когда вам нужно показать предупреждение, не создавайте новое - возьмите уже созданное и установите его свойства, а затем снова установите для visible значение true.

private var myAlert : Alert;

public void showAlert( message: String, title : String ) : void
{
    hideAlert();

    myAlert = Alert.show( message, title, Alert.OK | Alert.NONMODAL );
}

public void hideAlert() : void
{
    if( myAlert != null && myAlert.visible ) {
        myAlert.visible = false;
    }
}
0 голосов
/ 26 февраля 2009

Я не думаю, что это возможно.

Вы можете создать собственный подкласс компонента оповещения TitleWindow, а затем использовать PopupManager, чтобы показать / скрыть их.

...