Итак, я начал изучать MVC. Пробую сделать простенькое приложение: есть текстовое поле, в котором сначала ноль, под ним кнопка. Каждое нажатие кнопки должно увеличивать значение в поле на 50.
Проблема возникла на этапе отсылки события с Модели во Вьювер, хотя вроде-бы делаю по книжке.

Код AS3:
package mvc
{
/**
* ...
* @author Scorpion
*/
import fl.controls.Button;
import flash.display.Sprite;
import flash.events.*;
import flash.text.TextField;
public class View extends Sprite
{
private var _model: Model;
private var _controller: Controller;
private var _textF: TextField;
private var _button: Button;
public function View(): void
{
_model = new Model();
_controller = new Controller();
_textF = new TextField();
_textF.x = 200;
_textF.y = 200;
_textF.text = String(_model.value);
addChild(_textF);
_button = new Button();
_button.x = 200;
_button.y = 250;
addChild(_button);
_button.addEventListener(MouseEvent.CLICK, request_change);
_model.addEventListener(Event.CHANGE, newValue);
}
private function request_change(e: Event): void
{
_controller.dispatchEvent(new Event("request_change"));
}
private function newValue(e: Event): void
{
_textF.text = String(_model.value);
}
}
}

Код AS3:
package mvc
{
/**
* ...
* @author Scorpion
*/
import flash.events.Event;
import flash.events.EventDispatcher;
public class Controller extends EventDispatcher
{
private var _model: Model;
public function Controller(): void
{
_model = new Model();
this.addEventListener("request_change", change_value);
}
private function change_value(e: Event): void
{
_model.dispatchEvent(new Event("change_value"));
}
}
}

Код AS3:
package mvc
{
/**
* ...
* @author Scorpion
*/
import flash.events.Event;
import flash.events.EventDispatcher;
public class Model extends EventDispatcher
{
private var _num: int = 0;
public function Model(): void
{
this.addEventListener("change_value", change_value);
}
public function get value(): int
{
return _num;
}
private function change_value(e: Event): void
{
_num += 50;
dispatchEvent(new Event(Event.CHANGE));
}
}
}
Ну и в Мейне вызвал:

Код AS3:
view = new View();
addChild(view);
Трейсами проверил, что отсылка события с Вьювера в Контроллер, и с Контроллем в Модель, происходит нормально. А с Модели во Вьювер - нет. Что же я сделал не так?