Уважаемые коллеги, достаточно часто я сталкиваюсь с проблемой контроля выполнения кода. Если, например, PHP выполняется построчно, то ActionScript асинхронно и отследить какая часть в данный момент выполняется, и сколько еще осталось достаточно сложно.
Обычно я выстраиваю порядок выполнения начиная от загрузки внешних данных. Что-то в духе:

Код AS1/AS2:
function init () {
...
resultObject = parseResource(loadResources (var));
if(resultObject) {
основной код;
}
};
function parseResource (var) {
...
_global.flagParse = true;
return resultObject;
};
function loadResources (var) {
...
parseResource (var);
_global.flagLoad = true;
};
Получается огромная вложенность и в большом проекте становится сложно управлять кодом. Огромное количество времени уходит на установку флагов и их проверку. Собственно проблема получается скорее архитектурная.
Я пробовал кучу вариантов: начиная от создания некоего универсального диспетчера, которые последовательно обходит все источники, загружает данные и передает результат в основной код. И заканчивая описанным выше вариантом с флагами и кучей проверок.
Поделитесь, пожалуйста, опытом. Как вы организовываете архитектуру кода и контролируете логику приложения?