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

Apache flex FLEX:以编程方式删除警报?,apache-flex,actionscript-3,alert,deep-linking,Apache Flex,Actionscript 3,Alert,Deep Linking,我需要以编程方式删除警报 这就是为什么: 我的应用程序使用BrowserManager启用基于url#散列部分内容的深度链接。如果警报当前处于启动状态,并且用户点击“后退”按钮,则应用程序将恢复到以前的状态。但警报仍将处于上升状态,在许多情况下,在这一点上是无关紧要的 那么,有没有一种方法可以通过编程方式删除警报?所以当散列片段改变时,我可以删除它 谢谢 我认为这是不可能的 您可以创建自己的警报组件子类化TitleWindow,然后使用PopupManager显示/隐藏它们。结果是alert.s

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

这就是为什么: 我的应用程序使用BrowserManager启用基于url#散列部分内容的深度链接。如果警报当前处于启动状态,并且用户点击“后退”按钮,则应用程序将恢复到以前的状态。但警报仍将处于上升状态,在许多情况下,在这一点上是无关紧要的

那么,有没有一种方法可以通过编程方式删除警报?所以当散列片段改变时,我可以删除它


谢谢

我认为这是不可能的


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

结果是alert.show函数返回警报引用,然后仅使用PopupManager将其添加到显示列表中。因此,如果在调用Alert.show时捕获了返回引用,则可以告诉PopUpManager将其删除。:)

您可以通过将
警报
对象保持为成员数据,然后在处理完后将其
可见
属性设置为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;
    }
}

不,我是说警报类mx.controls.alerts实际上这是可能的…我在下面回答了它并解释了如何…我已经测试了它,它可以工作了。谢谢