traitement des messages d'alerte se produit dans différents fil que les fils d'application si l'application n'attendez pas un message d'alerte boîte. L'astuce consiste à avoir une variable globale avec la valeur initialisée de false. Sur le gestionnaire d'événements pour close, annulez l'événement close si la valeur n'est pas true. Cela permet d'afficher le message d'alerte. Si l'utilisateur appuie sur Oui, réglez la variable sur true et de nouveau sur la fonction de sortie de feu.
private var boolExit:Boolean=false;
private function alertClickHandler(event:CloseEvent):void{
if(event.detail==Alert.YES){
boolExit=true;
NativeApplication.nativeApplication.exit();
}
}
private function AppExit(e:Event):void{
if(!boolExit)
e.preventDefault();
Alert.show("Do you want to exit application?",
"Exit Confirmation",
Alert.YES|Alert.NO,null,
alertClickHandler
);
}
public function init():void
{
. . .
this.addEventListener(Event.CLOSING,AppExit);
. . .
}
erm, il fermera toujours même lorsque je passerai à votre solution. Sous Windows 7. – Proyb2
Cela fonctionne également sous Windows 7. J'utilise exactement la même chose dans une application pour demander à enregistrer quand l'utilisateur veut fermer la fenêtre du bouton x. Utilisez-vous 'Event.CLOSING', et non' Event.CLOSE'? –
J'utilise la fermeture, peut-être pourriez-vous poster un exemple de code? Apprécier. – Proyb2