FLEX: rimuovere programmazione Alert?
-
06-09-2019 - |
Domanda
Ho bisogno di rimuovere un avviso di programmazione.
Questo è il motivo per cui: La mia applicazione utilizza BrowserManager per consentire deep linking in base al largo del contenuto nella parte #hash dell'URL. Se un avviso è attualmente, e l'utente preme il pulsante Indietro, l'applicazione tornerà al suo stato precedente. Ma l'avviso sarà ancora alto, e in molti casi irrilevante in quel punto.
Quindi non v'è un modo per rimuovere la programmazione Alert? così quando cambia il frammento hash posso toglierlo.
Grazie!
Soluzione
Si scopre la funzione Alert.show restituisce un riferimento di avviso e quindi utilizza solo PopUpManager per aggiungerlo all'elenco di visualizzazione. quindi se si cattura il riferimento di ritorno quando si chiama Alert.show si può dire PopUpManager per rimuoverlo. :)
Altri suggerimenti
È possibile farlo mantenendo l'oggetto Alert
come dati membro, e quindi impostando la proprietà visible
su false quando hai finito con esso. La prossima volta che è necessario mostrare un avviso, non creare uno nuovo - afferrare quello che hai già creato e impostare le sue proprietà, quindi impostare a true visible
nuovo
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;
}
}
Non credo che sia possibile.
È possibile creare il proprio TitleWindow
componente Alert sottoclassi e quindi utilizzare PopupManager
per mostrare / nascondere loro.