Как я подключал AsWing или swf-библиотеки в 2.07

Disclaimer: я из рук вон плохо знаю flash-платформу, поэтому часть моих приключений ниже может кому-то показаться странной - это смело можно списывать на то, что я чайник...

А дело было так. Пришло мне в голову перевести gui для небольшой программки с Arctic на AsWing.
И вот, разбираясь с подключением AsWing, сделал для себя несколько важных открытий (с опозданием примерно на полгода).
Во-первых стоит у себя держать последнюю версию компилятора, это утверждение я уже проверил в свое время, когда новая версия исправила глюки inline... а, впрочем, обо всем по порядку...

Как пользоваться AsWing я, естественно, не знал. Документация на сайте оказалась с сильным китайским акцентом.
"you should not add component to JWindow directly, you should add component like this"
Поэтому решено было действовать по туториалу с haxe.org.
AsWing 1.5 был успешно скачан, из swc был дернут файлик library.swf, потом я сгенерировал классы командой
--gen-hx-classes library.swf.
Пример из туториала заработал, интерфейс, склепанный на GuiBuilder - нет.
Выяснилось, что сгенеренный билдером haxe-код несколько хреновый, JPanel не работает как родительский элемент для интерфейса (перед этим была перерыта документация) - в туториале был JFrame, который создавал окошко с рамками и заголовком - чтобы их убрать, следовало создать JWindow.

Но этим дело не ограничилось. При компиляции мне заявили что
org.aswing.AsWingConstants should be Int
Беглый осмотр показал, что в сгенеренном hax'ом файле образовался enum, в haxe перечисления не приводятся к инт...
В as-исходнике оказался класс со списком констант, они были тщательно скопированы и перерисованы в inline static
Интерфейс заработал, омрачало эту радость только то, что он был со скином (LAF - look and feel) по умолчанию.
Интернет был перерыт на тему того, как прикрутить скин.
И тогда было сделано открытие первое - с версии 2.06 можно вкомпилировать несколько -swf-lib.
И я обновил компилятор.

Далее следуем по проторенной дорожке - топаем искать бинарник со скином (в моем случае это OrangeLaf) - делаем --gen-hx-classes - и получаем... ошибку - invalid class name

Еще пару часов копаюсь в интернете, пробую подгрузить swfку лоадером, получая конфликты имен - среда ругается на redifinition, пока не натыкаюсь на строчку в чейнджлоге
2011-01-30: 2.07
flash9 : changed --gen-hx-classes implementation
now use 'haxe -swf-lib lib.swf --gen-hx-classes' instead

...все постепенно встает на свои места. Обновился то я - на последнюю версию.
--swf-lib orangelaf.swf --gen-hx-classes ругается на отсутствие какого-то компонента из aswing
--swf-lib aswing.swf --gen-hx-classes ругается на отсутствие какого-то компонента из flash9 о_О
в ход идет тяжелая артиллерия
-swf9 --swf-lib aswing.swf --gen-hx-classes срабатывает... и генерирует код для всех классов флеш-платформы... наблюдаю файлики Array.hx, ArrayAccess.hx и так далее. Начинает доходить.

Иду жму f5 во флешдевелопе, там подключены обе swfки - оно внезапно компилится. Снисходит озарение - сношу к черту папку с классами для асвинга - получаю ошибку - уже знакомую. Про enum. Последний стал с новой версией лучше - там появился @fakeInt - но все равно неправильный. Возвращаю обратно в папку org/aswing самописный класс с исправлением - и только его. Дописываю строчку
UIManager.setLookAndFeel(new OrangeLookAndFeel());
и у меня появляется скин для интерфейса.
Занавес.

...А все потому, что в 2.07 появилась одна малозаметная фича - --gen-hx-classes стал практически не нужен
haXe автоматически генерирует классы для подключенных командой -swf-lib библиотек. Которых теперь неограниченное количество. Вместе с подсказками IDE.
В итоге подключение AsWing вместе со скинами - это две строчки в additional compiler options флешдевелопа - и две кинутые в проект swfки. Ну и исправление extern класса - код проекта приоритетней автоматического.
Зависимости haXe разрешит сам.
Точно так же подключаются assets - компилятор сам предложит к ним путь.

Ура товарищи. Революция свершилась! Просто ее не все заметили...