2009-02-25 6 views
4

Je dois supprimer une alerte par programmation. C'est pourquoi: Mon application utilise BrowserManager pour activer la liaison profonde basée sur le contenu de la partie #hash de l'URL. Si une alerte est en cours et que l'utilisateur appuie sur le bouton Précédent, l'application revient à son état précédent. Mais l'alerte sera toujours en place, et dans de nombreux cas, non pertinente à ce stade.FLEX: Comment supprimer par programme Alert?

Y a-t-il un moyen de supprimer par programme l'alerte? donc quand le fragment de hachage change je peux l'enlever.

Merci!

+0

Non, je veux dire la classe Alert mx.controls.Alert –

Répondre

9

Il s'avère que la fonction Alert.show renvoie une référence d'alerte, puis utilise simplement PopUpManager pour l'ajouter à la liste d'affichage. donc, si vous saisissez la référence de retour lorsque vous appelez Alert.show, vous pouvez indiquer à PopUpManager de le supprimer. :)

0

Je ne pense pas que ce soit possible.

Vous pouvez créer votre propre composant d'alerte sous-classement TitleWindow, puis utiliser PopupManager pour les afficher/masquer.

+0

En fait, il est possible ... je lui ai répondu ci-dessous et how..I déjà testé a expliqué dehors et cela fonctionne. Merci. –

4

Vous pouvez le faire en conservant l'objet Alert en tant que données de membre, puis en définissant sa propriété visible sur false lorsque vous avez terminé. La prochaine fois que vous avez besoin d'afficher une alerte, n'en créez pas une nouvelle - prenez celle que vous avez déjà créée et définissez ses propriétés, puis réglez de nouveau visible sur 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; 
    } 
} 
Questions connexes