(4)【FrontController】役割と実装例
com.adobe.cairngorm.control.FrontController;の説明です。(Cairngorm2.1)
役割
アプリケーションのすべてのコマンドを登録する。また、その都度必要なコマンドを実行する。
■
どのイベントが発生したときに、どのコマンドを実行するのかを定義するためのクラスです。
実際には、(アプリケーション起動時に)CairngormEventDispatcherにイベントリスナーを追加することで決定しています。
イベントを送出するのはCairngormEventDispatcherの役割です。
イベントが送出されたら、CairngormEventDispatcherによってFrontControllerのコールバック関数であるexecuteCommand()メソッドが実行され、
FrontControllerが実際にコマンドを実行します。
実装例
com.adobe.cairngorm.control.FrontControllerを継承してクラスを作成しましょう。
定数を作成し、コンストラクタ内で、ユーザージェスチャの数だけaddCommand()を行いましょう。
ログインとログアウトの2つのユーザジェスチャーを持っているLoginアプリケーションをサンプルとします。
アプリケーションは「ログインする」「ログアウトする」の2個のボタンを持っています。
LoginControllerには、2つのイベントを登録します。
package sample.control { import com.adobe.cairngorm.control.FrontController; import sample.command.LoginCommand; import sample.command.LogoutCommand; public class LoginController extends FrontController { public static const EVENT_LOGIN : String = "login"; public static const EVENT_LOGOUT : String = "logout"; public function LoginController() { addCommand( EVENT_LOGIN, LoginCommand ); addCommand( EVENT_LOGOUT, LogoutCommand ); } } }
また、
アプリケーションmxmlファイルに以下のタグを記述することで、アプリケーションロード時(アプリケーションmxmlロード時)にインスタンス化されます。
従って、アプリケーション起動時に一度だけLoginControllerのコンストラクタでコマンドが登録されます。
<mx:Application xmlns:control="sample.control.LoginController" ... > <control:LoginController id="controller" /> ...
次回は、【CairngormEventDispatcher】役割と実装例です。