1

我获得了一些 PureMVC 经验,我想使用键盘命令来控制我的视图。应用程序的其余部分不需要知道这个视图在做什么。

我应该将它们直接放在视图中,还是应该将它们放在其他地方并在按下键时使用通知通知视图?

谢谢!

4

1 回答 1

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 事件。

于 2011-01-26T22:54:27.953 回答