Dans PureMVC, où est le bon endroit pour mettre l'auditeur du clavier qui commande une vue?
-
24-10-2019 - |
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!
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.