As3 MVC学习入门

    什么是MVC?m就是model,v就是view,c就是contrler;也就是为了减少程序的耦合度,狠很牛的人就运用该模式把应用程序分为三层,便于管理、二次开发等......,

    model里面放着数据,供view和contrler来用,通常也在model里面派发事件,一直与两者保持独立。

    view是用来显示界面让用户观察的,它是按用户请求去用model里面的数据,view里面接收model里面派发出来的的事件,并从新根据请求去设置显示界面。

    controler是按请求去更新数据的处理器,通过传参或者其他方式是与view和model接触并处理。

下面就是一个很好的了解mvc的显示时间小例子源码,供初学者参考:


model
package
{
 import flash.display.Sprite;
 import flash.events.EventDispatcher;
 import flash.events.Event;
 
 
 public class Model extends EventDispatcher
 {
  private var _hour:String;
  private var _minute:String;
  private var _second:String;
  public function Model()
  {
   
  }
  
  public function get hour():String { return _hour; }
  
  public function set hour(value:String):void
  {
   dispatchEvent(new Event("setHour"));
   _hour = value;
  }
  
  public function get minute():String { return _minute; }
  
  public function set minute(value:String):void
  {
   dispatchEvent(new Event("setMinute"));
   _minute = value;
  }
  
  public function get second():String { return _second; }
  
  public function set second(value:String):void
  {
   dispatchEvent(new Event("setSecond"));
   _second = value;
  }
 }
 
}
view
public class View extends Sprite
 {
  private var txt:TextField;
  private var _model:Model;
  private var _control:Control;
  public function View(model:Model,control:Control)
  {
        _model = model;
     _control = control;
   
     txt = new TextField()
     addChild(txt);
     _model.addEventListener("setHour", setHandler);
     _model.addEventListener("setMinute", setHandler);
     _model.addEventListener("setSecond", setHandler);
    control.starUp();
  }
  
  private function setHandler(e:Event):void
  {
   txt.text = _model.hour + ":" + _model.minute + ":" + _model.second;
  }
 }
 
}
 
controler
 
public class Control 
 {
  private var _model:Model;
  private var hour:String;
  private var minute:String;
  private var second:String;
  private var timer:Timer = new Timer(1000);
  public function Control(model:Model)
  {
   _model = model;
  }
  public function starUp():void
  {
           timer.start();
     timer.addEventListener(TimerEvent.TIMER, onTimer);
  }
  
  private function onTimer(e:TimerEvent):void
  {
   var date:Date = new Date();
   _model.hour = date.getHours() <9 ? "0" + date.getHours(): String(date.getHours());
   _model.minute = date.getMinutes() < 9? "0" + date.getMinutes(): String(date.getMinutes());
   _model.second = date.getSeconds() < 9?"0" + date.getSeconds() : String(date.getSeconds());
  }
 }
 
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值