2009-02-25 140 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; 
    } 
}