2012-08-29 25 views
3

我總是根據MVC原則設計我的程序,但是合適的動畫是痛苦的。動畫和MVC原理

我已經實現以下方案到目前爲止:

1)模型確實的動作[]數併發送通知到所有聽衆;

2)收到通知後,視圖會向隊列添加動畫。

這是可行的方法,但它有一個巨大的缺點 - 模型和用戶界面變得不同步。例如,已經對模型應用了10個動作,但UI仍處於狀態,其中應用了5個動作。

這個缺點強制動畫編碼不間斷,這不是UI設計的良好實踐。請建議如何解決問題。

+0

現在只是將動作觸發器移至View。看起來並不正確,但不幸的是,這是一切正常工作的唯一方式。 –

回答

1

動畫結束後,您可以在之後更新模型。這樣,您的動畫就是用戶可以用來確定動作何時完成的表示形式。例如。在將對象拖動到其目標後,該對象將保留在原來的位置(模型端),直到動畫結束,然後才移動到新的位置。

這樣,如果動畫由於用戶中斷或錯誤導致失敗,您的模型仍將與視圖的當前狀態同步。

+0

情況並非如此。就我而言,模型是一系列動作的來源(例如,通過計時器)。我希望模型只有在動畫完成後才能執行下一個動作。 –