• AS3 MVC1


    View Code
    package mvc
    {
        public class Time
        {
            private var _hour:uint;
            private var _minute:uint;
            private var _second:uint; 
            
            public function Time(hour:uint,minute:uint,second:uint){ 
                this._hour=hour;
                this._minute=minute;
                this._second=second;
            }
            
            public function get hour():uint{
                return _hour;
            }
            
            public function set hour(value:uint):void{
                this._hour=value;
            } 
            
            public function get minute():uint{
                return _minute;
            }
            
            public function set minute(value:uint):void{
                this._minute=value;
            }
            public function get second():uint{
                return _second;
            }
            
            public function set second(value:uint):void{
                this._second=value;
            }
            
            public function clone():Time{
                return new Time(this.hour,this.minute,this.second);
            }
        }
    }
    View Code
    package mvc
    {
        import flash.events.Event;
        import flash.events.EventDispatcher;
    
        public class ClockData extends EventDispatcher
        {
            private var _time:Time
            
            public function ClockData()
            {
            }
            
            public function get time():Time{
                if(_time==null){
                    var date:Date = new Date();
                    return new Time(date.hours,date.minutes,date.seconds);
                }else{
                    return _time.clone();
                }
            }
            
            public function set time(value:Time){
                _time=value.clone();
                dispatchEvent(new Event(Event.CHANGE));
            }
        }
    }
    View Code
    package mvc
    {
        import flash.display.Sprite;
        import flash.events.Event;
    
        public class AbstractClock extends Sprite
        {
            protected var _data:ClockData;
            
            public function AbstractClock(data:ClockData){
                _data=data;
                _data.addEventListener(Event.CHANGE, draw);
            }
            
            protected function draw(event:Event=null):void{
                
            }
        }
    }
    View Code
    package mvc
    {
        import flash.display.Sprite;
        import flash.events.Event;
    
        public class AnalogClock extends AbstractClock
        {
            private var _face:Sprite;
            private var _hourHand:Sprite;
            private var _minuteHand:Sprite;
            private var _secondHand:Sprite;
            
            public function AnalogClock(data:ClockData)
            {
                super(data);
                
                _face = new Sprite();
                _face.graphics.lineStyle(0,0x000000,1);
                _face.graphics.drawCircle(0,0,100);
                this.addChild(_face);
                
                _hourHand = new Sprite();
                _hourHand.graphics.lineStyle(5,0x000000,1);
                _hourHand.graphics.lineTo(0,-50);
                this.addChild(_hourHand);
                
                _minuteHand = new Sprite();
                _minuteHand.graphics.lineStyle(2,0x000000,1);
                _minuteHand.graphics.lineTo(0,-80);
                this.addChild(_minuteHand);
                
                _secondHand = new Sprite();
                _secondHand.graphics.lineStyle(0,0x000000,1);
                _secondHand.graphics.lineTo(0,-80);
                this.addChild(_secondHand);
                
                draw(null);     
            }
            
            override protected function draw(event:Event=null):void{
                var time:Time = _data.time;
                _hourHand.rotation=30*time.hour+30*time.minute/60;
                _minuteHand.rotation=6 * time.minute+6 * time.second/60;
                _secondHand.rotation=6 * time.second;
                
            }
        }
    }
    View Code
    package mvc
    {
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
    
        public class DigitalClock extends AbstractClock
        {
     
            private var _display:TextField;
            
            public function DigitalClock(data:ClockData)
            {
                super(data);  
                
                _display = new TextField();
                _display.width=50;
                _display.height=10;
                _display.autoSize=TextFieldAutoSize.RIGHT;
                _display.x=1;
                _display.y=1;  
                this.addChild(_display);
                
                draw(null);
            }
            
            override protected function draw(event:Event=null):void{
                var time:Time = _data.time;
                _display.htmlText = "<front face='_typewriter' size='40' >" + time.hour+":"+
                    zeroFill(time.minute)+":"+zeroFill(time.second)+"</front>";     
                trace(_display.text); 
            }
            
            private function zeroFill(value:Number):String{
                if(value>9){
                    return value.toString();
                }else{
                    return "0"+value.toString();
                        
                }
            }
        }
    }
    View Code
    package
    {
        import flash.display.Sprite;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.events.TimerEvent;
        import flash.utils.Timer;
        
        import mvc.AbstractClock;
        import mvc.AnalogClock;
        import mvc.ClockData;
        import mvc.DigitalClock;
        import mvc.Time;
        
        public class TestMVC extends Sprite
        {
            private var _clockData:ClockData; 
            
            public function TestMVC()
            {
                stage.align=StageAlign.TOP_LEFT;
                stage.scaleMode=StageScaleMode.NO_SCALE;
                
                _clockData=new ClockData();
                var clock1:AbstractClock = new AnalogClock(_clockData);
                clock1.x=100;
                clock1.y=100;
                this.addChild(clock1);
                
                var clock2:AbstractClock = new DigitalClock(_clockData);
                clock2.x=120;
                clock2.y=200;
                this.addChild(clock2);
                
                var ticker:Timer = new Timer(1000);   
                ticker.addEventListener(TimerEvent.TIMER, onTick); 
                ticker.start(); 
            }
            
            public function onTick(evt:TimerEvent):void 
            { 
                var date:Date = new Date();
                _clockData.time = new  Time(date.hours,date.minutes,date.seconds);
            }    
        }
    }

     https://files.cnblogs.com/jinc/TestMVC.rar

  • 相关阅读:
    python 图片验证码降噪
    python 视频配音、剪辑
    Python实现音乐的剪辑
    OpenCV-Python 视频读取
    OpenCV-Python 人脸眼睛嘴识别
    OpenCV-Python 人脸识别
    numpy
    python学习笔记(3)---cookie & session
    python爬虫学习笔记(2)-----代理模式
    python爬虫学习笔记(1)
  • 原文地址:https://www.cnblogs.com/jinc/p/2495789.html
Copyright © 2020-2023  润新知