Я работаю над созданием простого приложения MCV, чтобы лучше понять MVC. У меня проблема с регистрацией слушателей событий.
Я вижу MVC в том, что представление отправляет события, контроллер прослушивает эти события и воздействует на них, обновляя модель или изменяя представление.
Таким образом, в моем приложении MVC у меня есть контроллер, который во время инициализации должен регистрировать все события, отправляемые представлением. Это мой контроллер:
открытый класс AppController расширяет UIComponent
{
приватная переменная _model: StaffAppModel;
public function AppController( model:StaffAppModel)
{
trace( "controller created" );
this._model = model;
// start up register event listeners
this.addEventListener( "saveUserEvent", saveUserHandler );
}
// event handler
public function saveUserHandler( e:SaveUserEvent ):void
{
trace("saveUserHandler run");
trace( e._userObj.getFirstname() );
}
}
Проблема в моем клиентском файле (я пишу приложение AIR на основе Flex, поэтому у меня есть файл MXML). В этом файле MXML я инициализирую контроллер и добавляю компоненты представления.
private function onInit():void
{
var _model:StaffAppModel = new StaffAppModel();
var _controller:AppController = new AppController( _model );
}
]]>
</mx:Script>
<mx:VRule horizontalCenter="-56" bottom="10" top="10" width="1" strokeColor="#000000"/>
<comp:DetailsView x="10" y="17" width="325" />
<comp:StaffListView x="352" y="10" height="570" width="400"/>
Затем я отправляю события из этих компонентов представления. Вот пример представления, отправляющего событие:
публичная функция saveUser (): void
{
_userObj.setFirstname (firstnameTxt.text);
_userObj.setLastname (lastnameTxt.text);
_userObj.setJobtitle (jobTitleTxt.text);
var evt: SaveUserEvent = new SaveUserEvent (_userObj);
dispatchEvent( evt );
}
Теперь это способ сделать это, и почему мой контроллер не регистрирует обработчики событий?
Спасибо