Программа всего лишь нажимает кнопку, и она сообщает вам, сколько раз вы нажимали кнопку в текстовом поле.
Класс документа: это точка входа в код.
package {
import flash.display.MovieClip;
/**
* MVCTest.as
* @author rotaercz
*/
public class MVCTest extends MovieClip {
private var _model:Model;
private var _view:View;
private var _control:Control;
public function MVCTest() {
_model = new Model();
_view = new View(this);
_control = new Control(_model, _view);
}
}
}
Класс модели: основной код модели.
package {
/**
* Model.as
* @author rotaercz
*/
public class Model {
private var _totalClicks:int;
public function AddClick():void {
_totalClicks++;
}
public function get Clicks():int {
return _totalClicks;
}
public function Model() {
_totalClicks = 0;
}
}
}
Класс управления: управляет как вводом, так и обновлением модели и просмотра здесь.
package {
import flash.events.MouseEvent;
/**
* Control.as
* @author rotaercz
*/
public class Control {
private var _model:Model;
private var _view:View;
public function Control(model:Model, view:View):void {
_model = model;
_view = view;
_view.addEventListener(MouseEvent.CLICK, OnClick);
}
private function OnClick(e:MouseEvent):void {
_model.AddClick();
_view.Text = "clicked " + _model.Clicks;
}
}
}
Класс просмотра: визуальное представление программы.
package {
import flash.display.MovieClip;
import flash.events.EventDispatcher;
import flash.events.MouseEvent;
import flash.text.TextField;
/**
* View.as
* @author rotaercz
*/
public class View extends EventDispatcher {
private var _parent:MovieClip;
private var _button:MovieClip;
private var _dt:TextField;
public function set Text(s:String):void {
_dt.text = s;
}
public function View(parent:MovieClip) {
_parent = parent;
_dt = _parent.getChildByName("dt") as TextField;
_button = _parent.getChildByName("mcButton") as MovieClip;
_button.addEventListener(MouseEvent.CLICK, OnClick);
}
private function OnClick(e:MouseEvent):void {
dispatchEvent(e);
}
}
}