0
我正在開發一個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;
}
}
我對僞代碼表示歉意,但真正的代碼非常冗長。
這是一種情況,它會更好地使用狀態模式,如果有的話,任何人都可以提供一個(短)代碼示例如何最好地實現這一點?