FLEX: supprimer Programmatically Alert?
-
06-09-2019 - |
Question
Je dois enlever une alerte par programme.
Voici pourquoi: Mon application utilise BrowserManager pour permettre la liaison profonde basée hors du contenu de la partie #hash de l'URL. Si une alerte est actuellement, et l'utilisateur appuie sur le bouton de retour, l'application revient à son état précédent. Mais l'alerte sera toujours, et dans de nombreux cas non pertinents à ce moment-là.
Ainsi est-il un moyen de supprimer l'alerte programme? alors quand les changements de fragments de hachage je peux le supprimer.
Merci!
La solution
Il se trouve la fonction Alert.show renvoie une référence alerte et utilise simplement PopUpManager pour l'ajouter à la liste d'affichage. donc si vous capturez la référence de retour lorsque vous appelez Alert.show vous pouvez dire PopUpManager pour le retirer. :)
Autres conseils
Vous pouvez le faire en gardant l'objet Alert
que les données membres, puis en définissant sa propriété visible
false lorsque vous avez terminé avec elle. La prochaine fois que vous devez afficher une alerte, ne pas créer un nouveau - prenez celui que vous avez déjà créé et définissez ses propriétés, puis définissez visible
true à nouveau
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;
}
}
Je ne pense pas que cela soit possible.
Vous pouvez créer votre propre TitleWindow
de sous-classement de composants d'alerte puis utilisez PopupManager
pour afficher / cacher les.