我获得了一些 PureMVC 经验,我想使用键盘命令来控制我的视图。应用程序的其余部分不需要知道这个视图在做什么。
我应该将它们直接放在视图中,还是应该将它们放在其他地方并在按下键时使用通知通知视图?
谢谢!
我获得了一些 PureMVC 经验,我想使用键盘命令来控制我的视图。应用程序的其余部分不需要知道这个视图在做什么。
我应该将它们直接放在视图中,还是应该将它们放在其他地方并在按下键时使用通知通知视图?
谢谢!
正如您所说,您有两种选择 - 将一些侦听器放在 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 事件。