Как вы сказали, у вас есть две альтернативы - поместить слушателей в класс view.mxml или поместить слушателей в какой-то общий класс.
1-й - это нормальный подход, никаких дальнейших объяснений не требуется, каждый программист будет делать то же самое.
2-й подход более интересен. Если у вас есть много просмотров, прослушивание событий клавиатуры, вы начнете использовать что-то вроде
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 framework, он похож на PureMVC + привязка данных + события Flex.