我正在获得一些PureMVC体验,我想使用键盘命令来控制我的视图。应用程序的其余部分不需要知道此视图正在做什么。
我应该将它们直接放在视图中,还是应该放在其他地方,并在按下某个键时使用通知通知视图?
谢谢!
答案 0 :(得分:2)
正如你所说,你有两个选择 - 在view.mxml类中放置一些监听器,或者将监听器放在一些通用类中。
1-st - 这似乎是正常的方法,不需要进一步的解释,每个程序员都会这样做。
第二种方法更有趣。如果您有很多视图,听取键盘事件,您将开始使用类似
的内容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。
在我的最新项目中,当我遇到许多不同的视图状态来监听许多事件时,它帮助了我很多。
我还建议你看一下Mate框架,就像PureMVC +数据绑定+ Flex事件一样。