Я работаю над проектом Flash, в котором изначально был простой шаблон для анимации, но теперь он имеет различные "состояния" с несколькими шаблонами (не под моим контролем)
Из-за этого мой цикл обновления (ENTER_FRAME) теперь начинает выглядеть примерно так:
private function update():void {
switch (state) {
case "intro":
switch(layoutState) {
case "large-images":
// do one animation
break;
case "thumbnails":
// do another animation
break;
case "text-on-top":
// do another animation
break;
}
break;
case "main":
switch(layoutState) {
case "large-images":
// do another animation
break;
case "thumbnails":
// do another animation
break;
case "text-on-top":
// do another animation
break;
}
break;
case "outro":
switch(layoutState) {
case "large-images":
break;
case "thumbnails":
break;
case "text-on-top":
break;
}
break;
}
switch(backgroundState) {
case "black":
// do something
break;
case "white":
// do something else
break;
}
}
И мои методы инициализации начинают выглядеть так:
private function initalizeDescription() {
description = new Description();
switch(layoutState) {
case "large-images":
// do something to description here
break;
case "thumbnails":
// do something else to description here
if (backgroundState == "black") {
// do one thing
}
if (backgroundState == "white") {
// do another thing
}
break;
case "text-on-top":
// do something else to description here
break;
}
}
Я извиняюсь за псевдокод, но реальный код довольно длинный.
Является ли это ситуацией, когда было бы лучше использовать шаблон состояний, и если да, то может ли кто-нибудь предоставить (короткий) пример кода, как лучше всего это реализовать?