4

我需要以编程方式删除警报。

这就是原因:我的应用程序使用 BrowserManager 根据 url 的 #hash 部分中的内容启用深度链接。如果当前出现警报,并且用户点击后退按钮,应用程序将恢复到之前的状态。但是警报仍然会出现,并且在许多情况下与那时无关。

那么有没有办法以编程方式删除警报?因此,当哈希片段发生变化时,我可以将其删除。

谢谢!

4

3 回答 3

9

事实证明 Alert.show 函数返回一个 Alert 引用,然后只使用 PopUpManager 将其添加到显示列表中。因此,如果您在调用Alert.show时捕获返回引用,则可以告诉 PopUpManager 将其删除。:)

于 2009-02-25T21:42:26.203 回答
4

为此,您可以将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;
    }
}
于 2009-02-25T21:43:09.807 回答
0

我不认为这是可能的。

您可以创建自己的警报组件子类化TitleWindow,然后用于PopupManager显示/隐藏它们。

于 2009-02-25T21:16:52.020 回答