Тема: Хорошее MVC
Показать сообщение отдельно
Старый 02.11.2014, 00:51
lammer.Ok вне форума Посмотреть профиль Отправить личное сообщение для lammer.Ok Найти все сообщения от lammer.Ok
  № 632  
Ответить с цитированием
lammer.Ok

Регистрация: Nov 2012
Сообщений: 55
Я догадываюсь в чём ошибка - неточное использование модели?
Код 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 {
	//рисуется окружность
}