Обработка предупреждающих сообщений происходит в потоке, отличном от потока приложения, поэтому приложение не ожидает окно сообщения с предупреждением.Хитрость заключается в том, чтобы иметь глобальную переменную с инициализированным значением false.В обработчике событий для закрытия отмените событие закрытия, если значение не изменено на true.Это позволяет показывать предупреждающее сообщение.Если пользователь нажал «Да», установите для переменной значение «истина» и снова выполните функцию пожарного выхода.
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);
. . .
}