Я решил эту проблему следующим образом:
private function showPrivacyDialog():void {
var spr:Sprite = new Sprite();
stage.focus = spr;
spr.addEventListener( FocusEvent.FOCUS_OUT, handleFocusEvent );
spr.addEventListener( FocusEvent.FOCUS_IN, handleFocusEvent );
Security.showSettings( SecurityPanel.PRIVACY );
}
private function handleFocusEvent( event:Event ):void {
event.target.removeEventListener( event.type, handleFocusEvent );
const closed:Boolean = (event.type == FocusEvent.FOCUS_IN);
trace( "Security Panel just", closed ? "closed!" : "shown!" );
if (closed) {
stage.focus = null; // or it can be restored to the previous value
}
}
Проверьте мой полный класс утилит SecurityPanelUtil , который показывает диалоговое окно настроек, а затем обрабатывает его закрытие и немедленно уведомляет об этом через обратные вызовы.