Обновление : решение flex 4
Поэтому, когда я перешел на flex 4 и начал компилировать свой mxml с помощью компилятора mobmlc с открытым исходным кодом adobe, приведенное ниже решение больше не работало, потому что предупреждение больше не теряет фокус, когда вы больше находитесь в настройках.
Насколько я могу судить, мне пришлось перейти к менее элегантному решению, где пользователь должен нажимать "ОК" в окне предупреждения каждый раз, когда он завершает настройку.
Вот новый код:
private function setup_smart_hide():void {
// Call this function whenever you make the flex app visible (or add it
// to a show_flex() function if you have such a thing set up)
alert = Alert.show('Click "OK" to continue.', 'Thanks!', Alert.OK, null, function(e:CloseEvent):void {
// calls the external javascript to hide the flex app
hide_self();
});
}
СТАРЫЙ: (flex 3) Получил эту работу ...
private function setup_smart_hide():void {
alert = Alert.show('Thanks');
alert.addEventListener(FocusEvent.FOCUS_IN, function(event:FocusEvent):void {
// javascript to hide the flex app
ExternalInterface.call("SB.flex.hide");
});
alert.addEventListener(FocusEvent.FOCUS_OUT, function(event:FocusEvent):void {
// javascript to show the flex app
ExternalInterface.call("SB.flex.show");
});
alert.setFocus();
}
Первым делом запускается функция init () ... единственная проблема (как сказал Уэсли), событие focusOut происходит, когда само приложение flex также теряет фокус.