Показать сообщение отдельно
Старый 01.02.2012, 02:23
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 6  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
По принципу 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) и пихать их комуто на выполнение, кто и возьмет на себя всю рутину.
Была идея писать отдельные классы для каждого действия, потом их пресовать в массив и передавать менеджеру, но все же решил спросить, может кто подскажет какой стандартный или личный подход.