2009-02-25 110 views
4

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

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

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

谢谢!

+0

不,我的意思是提醒类mx.controls.Alert – 2009-02-25 21:16:19

回答

9

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

0

我不认为这是可能的。

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

+0

其实这是可能的...我下面的回答,并解释how..I已经测试了它和它的作品。谢谢。 – 2009-02-26 15:49:19

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; 
    } 
}