PureMVCの経験があり、キーボードコマンドを使用してビューを制御したいと思います。アプリケーションの残りの部分は、このビューが何をしているのかを知る必要はありません。
それらをビューに直接配置する必要がありますか、それとも別の場所に配置して、キーが押されたときに通知を使用してビューに通知する必要がありますか?
ありがとう!
PureMVCの経験があり、キーボードコマンドを使用してビューを制御したいと思います。アプリケーションの残りの部分は、このビューが何をしているのかを知る必要はありません。
それらをビューに直接配置する必要がありますか、それとも別の場所に配置して、キーが押されたときに通知を使用してビューに通知する必要がありますか?
ありがとう!
あなたが言ったように、いくつかのリスナーをview.mxmlクラスに入れるか、リスナーをいくつかの一般的なクラスに入れるという2つの選択肢があります。
1-st-これは通常のアプローチのようです。これ以上の説明は必要ありません。すべてのプログラマーが同じことをします。
2番目のアプローチはより興味深いものです。多くのビューがあり、キーボード イベントをリッスンしている場合は、次のようなものを使い始めます。
public class EnterButtonPressed extends SimpleCommand
{
function execute(...):void
{
//do something with the model, and then notify the view
}
}
しかし、キーをリッスンすることになっているビューを追加するとEnter
、クラスはそのようになります
public class EnterButtonPressed extends SimpleCommand {
function execute(...):void
{
switch(viewType)
{
case view1:
//do something with the model, and then notify view1
break;
case view2:
//do something with the model, and then notify view2
break;
case view3:
//do something with the model, and then notify view3
break;
case view4:
//do something with the model, and then notify view4
break;
...
}
}
多くのキーボードイベントを聞くと、これはひどいようです。ただし、パターンの設計に精通している場合は、State Patternを使用できます。
多くのイベントをリッスンしている多くの異なるビューステートに遭遇したとき、それは私の最新のプロジェクトで私を大いに助けました.
また、PureMVC + データ バインディング + Flex イベントのようなMateフレームワークもご覧になることをお勧めします。