Разбираюсь с поведением окошек по книге Adobe AIR Джои Лотта. Дошел до примера, в котором автор рекомендует на обработчик закрытия дочерних окон делать их невидимыми, а событие закрытия "душить"; вот документ класс:

Код AS3:
package src.mapCreator
{
import flash.desktop.NativeApplication;
import flash.display.MovieClip;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.display.NativeWindow;
import flash.display.NativeWindowInitOptions;
import flash.display.NativeWindowType;
import flash.display.Screen;
import flash.text.TextField;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.NativeWindowBoundsEvent;
import flash.filesystem.File;
public class Main extends MovieClip
{
private var text:TextField;
public function Main():void
{
var options:NativeWindowInitOptions = new NativeWindowInitOptions();
options.type = NativeWindowType.UTILITY;
var window:NativeWindow = new NativeWindow(options);
window.x = 10;
window.y = 10;
window.activate();
window.width = 50;
window.height = 50;
text = new TextField();
text.text = "MainWindow";
window.stage.addChild(text);
stage.addChild(text);
var modal:ModalWindow = new ModalWindow();
modal.activate();
stage.nativeWindow.addEventListener(Event.EXITING, eventCloseProgram);
}
private function eventCloseProgram(e:Event):void
{
var windows:Array = NativeApplication.nativeApplication.openedWindows;
for(var i:int = 0; i < windows.length; i++)
windows[i].close();
}
}
}
и класс ModalWindow, который представляет собой окошко:

Код AS3:
package src.mapCreator
{
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.display.NativeWindow;
import flash.display.NativeWindowInitOptions;
import flash.display.NativeWindowType;
import flash.events.Event;
public class ModalWindow extends NativeWindow
{
public function ModalWindow()
{
var options:NativeWindowInitOptions = new NativeWindowInitOptions();
options.type = NativeWindowType.UTILITY;
super(options);
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
addEventListener(Event.CLOSING, eventClosing);
}
private function eventClosing(e:Event):void
{
visible = false;
e.preventDefault();
}
}
}
После этого при тестировании приложения в IDE окно появляется ровно один раз, и после закрытия (дочерние окна, кстати, не исчезают) более ничего не происходит. При попытке провести DEBUG, дабы проверить, на чем приложение затыкается, появляется сообщение "Debugger launch failed. Debug session will terminate". Такое ощущение, что процесс, который овтечает за предыдущую сессию программы остается благополучно висеть в памяти, не давая развернуться новой задаче.
И еще вопрос в догонку: что нужно было курить, чтобы сделать работу с окнами такой жуткой?
Добавлено через 4 часа 46 минут
ага, сообразил, подписался на

Код AS3:
stage.nativeWindow.addEventListener(Event.EXITING, eventCloseProgram);
а нужно было на

Код AS3:
stage.nativeWindow.addEventListener(Event.CLOSING, eventCloseProgram);