По принципу FIFO я делал последовательность однотипных операций с одинаковым набором параметров, но это была тупо линейная последовательность. А вот когда начинались ветвления, да еще из разными параметрами или без них...
Чисто теоретический пример:

Код:
команда1 - моментально;
команда2 - длительно;
команда3 - длительно;
команда4 - длительно;
команда5 - моментально;
...

Код AS3:
function fun1(someCondition) {
команда1();
команда2();
команда3();
if (someCondition) addEventListener(SomeCommandEvent.STOPPED_3, конецКомманды3_вариант1);
else addEventListener(SomeCommandEvent.STOPPED_3, конецКомманды3_вариант2);
}
function конецКоманды3_вариант1() {
removeEventListener(SomeCommandEvent.STOPPED_3, конецКомманды3_вариант1);
команда5;
}
function конецКоманды3_вариант2() {
removeEventListener(SomeCommandEvent.STOPPED_3, конецКомманды3_вариант2);
команда4;
addEventListener(SomeCommandEvent.STOPPED_4, конецКомманды4);
}
function конецКоманды4() {
removeEventListener(SomeCommandEvent.STOPPED_4, конецКомманды4);
команда5;
}
Уж очень большая захламленость кода получается. Хотелось бы просто прописать два массива команд для разних случаев (в зависимости от someCondition) и пихать их комуто на выполнение, кто и возьмет на себя всю рутину.
Была идея писать отдельные классы для каждого действия, потом их пресовать в массив и передавать менеджеру, но все же решил спросить, может кто подскажет какой стандартный или личный подход.