Menu


jQueryでMVC (2) 継続渡しスタイル(CPS)でアニメーション

本記事は「jQueryでMVC (1) ゆっくりしていってね!」の続きです。

ソースコード

lameCPS.js

アプリケーションの説明

ボタンを押すと博麗霊夢が動きます。文字も出ます。

ソースコードの説明

アニメーションをCPS化しました。アニメーションの進行は継続として表現されています。

Model

notifyCPS()はViewへ通知するメソッドです。通知もCPSになっています。すべてのViewが処理を終えて継続を呼び出すまで待って、最後にcontを呼び出します。

start()メソッドは非同期で実行される可能性のあるタスクを関数のリストとして生成します。各タスク関数はModelのプロパティを変更してnotifyCPS()を呼び出します。

execCPS()メソッドはタスクリストをCPSの形で連結して呼び出します。最後にはcontを呼び出します。

タスクリストを逆順でループすることで、上図の下側から継続を積み上げていっています。

Controller

Modelを呼び出すだけです。Viewのことも、アニメーションの進捗も感知しません。

前のバージョンではアニメーションの1アクションが完了するたびにモデルを呼び出していましたが、CPS化したため、アニメーションの進行にControllerは関係なくなりました。

View

アニメーションをCPS化しました。受け取った継続をjQueryアニメーションのコールバック関数にします。


MVC インデックスへ戻る


Last Update: 2012-12-30 18:30:41