Я догадываюсь в чём ошибка - неточное использование модели?
Код AS3:
//Модель
GameModel {
gameOver = false;
score = 0;
setGameOverState(flag) {
gameOver = flag;
dispatchEvent(Event.CHANGE_STATE);
}
getGameOverState() {
return gameOver;
}
addScore() {
score += 10;
//не кричим вьюшке
}
getScore() {
return score;
}
}
//Представление
GameView {
model;
canvas;
constructor(_model) {
model = _model;
canvas = new Canvas();
model.addEventListener(Event.CHANGE_STATE, showScore);
stage.addEventListener(MouseEvent.MOUSE_DOWN, drawCircle);
setTimeout(dispatchTimerOver, 20000);
}
drawCircle() {
//тут типа окуружность рисуется и добавляется на сцену
circle = new CircleView(canvas, canvas.mouseX, canvas.mouseY);
}
showScore() {
if (model.getGameOverState() == true) {
trace(model.getScore());
}
}
dispatchAddScore() {
dispatchEvent(Event.ADD_SCORE);
}
dispatchTimerOver() {
dispatchEvent(Event.TIMER_OVER);
}
}
//Контроллер
GameController {
model;
view;
constructor(_model, _view) {
model = _model;
view = _view;
view.addEventListener(Event.ADD_SCORE, addScore);
view.addEventListener(Event.TIMER_OVER, setGameOverState);
}
addScore() {
model.addScore();
}
setGameOverState() {
model.setGameOverState(true);
}
}
//Вьюшка Окружности
CircleView {
//рисуется окружность
}