FLEX:以编程方式删除警报?

时间:2009-02-25 21:08:02

标签: flex actionscript-3 alert deep-linking

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

这就是为什么: 我的应用程序使用BrowserManager根据网址的#hash部分中的内容启用深层链接。如果当前警报已启动,并且用户点击后退按钮,则应用程序将恢复到之前的状态。但警报仍然会上升,在许多情况下,此时无关紧要。

那么有没有办法以编程方式删除警报?所以当哈希片段改变时我可以删除它。

谢谢!

3 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分: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;
    }
}

答案 2 :(得分:0)

我认为不可能。

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