Domanda

Sono sempre una certa esperienza PureMVC e voglio utilizzare i comandi da tastiera per controllare il mio punto di vista. Il resto della applicazione non necessita di sapere su ciò che questo punto di vista sta facendo.

Dovrei metterli direttamente nella vista, o dovrebbero essere qualche altro posto e hanno la vista essere notificata tramite una notifica quando viene premuto un tasto?

Grazie!

È stato utile?

Soluzione

Come hai detto, hai due alternative -. Per mettere alcuni ascoltatori nella classe view.mxml, o di mettere gli ascoltatori in qualche classe generale

1-st - questo sembra essere l'approccio normale, senza ulteriori spiegazioni necessarie, ogni programmatore farà lo stesso

.

2-nd approccio è più interessante. Se si dispone di molti punti di vista, l'ascolto per gli eventi di tastiera, si inizierà con qualcosa di simile

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

ma dopo l'aggiunta di più punti di vista che si suppone di ascoltare per la chiave Enter la classe finirà come quella

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

Il che sembra terribile se si ascolta a molti eventi di tastiera. Ma se conosci di progettare modelli che è possibile utilizzare Stato modello .

Mi ha aiutato molto nel mio ultimo progetto, quando ho incontrato molti di vista differenti stati di ascolto per molti eventi.

Io vi consiglio anche di dare un'occhiata alla Mate quadro, è come vincolanti + Flex PureMVC + dati eventi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top