А мы тут резиной балуемся... :)

Переписал свой многострадальный "компоновщик".

В двух словах:
Это должен был быть легкий swf-ролик (10 килобайт, из них 6 - бут хэкса), который мог бы загружать и размещать указанные swf-ролики + графику (jpg/gif/png). Порядок следования и другие свойства загружаемых объектов определяются в "карте размещения" - http://www.damon.ru/projects/dflm/dflm.xml, карта может быть и динамической - http://www.damon.ru/projects/dflm/dflm.php?ID=2. Параметры загрузки можно задать через flashvars = "&id=1&mode=true&extension=php" или - "./dflm.swf?id=3&mode=true&extension=php". В "динамическом режиме" производится get-запрос, в котором передаётся Capabilities.serverString (содержит ID карты, L - локаль пользователя [ru/en/...] и другие полезные данные). Ролик-компоновщик напичкан "публичной статикой" для того, чтобы загружаемые ролики могли взаимодействовать с компоновщиком и друг с другом.

Переменные:

Layout.*
Version - текущая версия компоновщика
QuantityOfObjectsInTheList - количество объектов в карте
QuantityOfInitializedObjects - количество инициализированных объектов

Методы:

Layout.*
create(?Id:String, ?Mode:Bool, ?Extension:String):Void - загрузить карту
destroy():Void - убрать все, что загружено
setPosition(Object:DisplayObject, Properties:Dynamic):Void - установить объект в указанное место
stageCenter(Size:Float, Axis:Bool):Int - определить центр
getExternalVariables():Dynamic - получить объект, содержащий flashvars
getStageWidth():Float - получить ширину сцены
getStageHeight():Float - получить высоту сцены
setLoadingCompleteCallback(Callback:Dynamic):Void - установить колбек на завершение загрузки всех объектов (массив колбеков, т.е. их может быть много и отовсюду)
setStageResizeCallback(Callback:Dynamic):Void - установить колбек на изменение размеров сцены (массив колбеков, т.е. их может быть много и отовсюду)
callLoadingCompleteCallbacks():Void - вызвать установленные колбеки
callStageResizeCallbacks():Void - вызвать установленные колбеки
unsetLoadingCompleteCallback(Callback:Dynamic):Void - убрать установленный колбек
unsetStageResizeCallback(Callback:Dynamic):Void - убрать установленный колбек

Background.*
initialize():Void - инициализация фона
draw(Image:String, Disposition:String):Void - нарисовать (возможные значения disposition: tiled/centered/none)
clear():Void - очистить

Boost.*
empty(Parameter:Dynamic):Bool - проверяет пуст ли передаваемый параметр
boolean(Parameter:Dynamic):Bool - возвращает булевое значение строковых "true" / "1"

---

Если из внешнего ролика обратиться к хэксовому геттеру, то тот вернет null, поэтому пришлось записать их в обычном виде.
В ролике-компоновщике используестя Hash - Dictionary с насаженным итератором и прочими прелестями (его характеристики обсуждались на flash-ripper.com).
На самом деле для каждого подгружаемого объекта есть свой индикатор, только пока не решил как их отображать (вместо них статические сигнализаторы).
AVM1-ролики могут быть загружены и размещены, но не могут взаимодействовать с компоновщиком.
Хочу написать скроллер (все будет прокручиваться - при том, что будет занимать свои места и тянутся).
Сгенерировал из проекта AS3-классы и ужаснулся (Николя обещал оптимизировать результирующий код к версии 1.17, посмотрим). Вобщем, мне расхотелось писать на хэксе. Следующая версия компоновщика будет на чистом AS3.

Тестовый экземпляр - http://www.damon.ru/projects/dflm/
Исходники (не все) - http://www.damon.ru/projects/dflm/dflm.rar

П.С.
Это был мой первый код на haXe, а AS3 я пока не знаю. Кстати, тем, кто писал на "mtasc-совместимом AS2" будет легче освоить haXe, а после и AS3. Я уже начал.