Question

Je reçois une certaine expérience PureMVC et je veux utiliser les commandes du clavier pour contrôler mon point de vue. Le reste de l'application n'a pas besoin de savoir sur ce que ce point de vue fait.

Dois-je les mettre directement dans la vue, ou devraient-ils être un autre endroit et avoir la vue notifiée en utilisant une notification lorsqu'une touche est enfoncée?

Merci!

Était-ce utile?

La solution

Comme vous l'avez dit, vous avez deux solutions de rechange -. Mettre des auditeurs dans la classe view.mxml, ou de mettre les auditeurs dans une classe générale

1-st - cela semble être l'approche normale, pas d'explications supplémentaires nécessaires, chaque programmeur fera de même

.

2-ème approche est plus intéressante. Si vous avez plusieurs vues, écoutant les événements de clavier, vous allez commencer à utiliser quelque chose comme

public class EnterButtonPressed extends SimpleCommand 
{
  function execute(...):void
  {
    //do something with the model, and then notify the view
  }
}

mais après l'ajout de vues qui sont censés écouter clé Enter votre classe finira comme ça

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;
      ...
  }
}

Ce qui semble terrible si vous l'écoute de nombreux événements de clavier. Mais si vous connaissez la conception des modèles que vous pouvez utiliser Motif .

Il m'a beaucoup aidé dans mon dernier projet, quand je rencontrais beaucoup de différents états d'affichage écoute pour de nombreux événements.

Je vous recommande également de jeter un oeil à Maté cadre, il est comme PureMVC + liaison de données + Flex événements.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top