flash时钟

package {

        import flash.display.Sprite;

        import flash.events.TimerEvent;

        import flash.geom.Point;

        import flash.utils.Timer;

import flash.text.TextField;

import flash.text.TextFieldAutoSize;

import flash.text.TextFormat;

        

        public class Main extends Sprite

        {

                private var r:Number = 155;//钟面半径

                private var cx:Number = 175;//钟面圆心x

                private var cy:Number = 175;//钟面圆心y

                private var pr:Number = 142;//整点半径

                private var sl:Number = 140;//秒针长度

                private var ml:Number = 100;//分针长度

                private var hl:Number = 65;//时针长度

                private var clock:Sprite = new Sprite();

private var finger:Sprite = new Sprite();

private var timer:Timer = new Timer(0);

                

                public function Main()

                {

clock.addChild(finger);

this.addChild(clock);

initClock();

                }

                

                public function initClock():void

                {

                        clock.graphics.lineStyle(5,0x007500);

                        clock.graphics.drawCircle(cx,cy,r+1);

                        clock.graphics.drawCircle(cx,cy,r);

clock.graphics.beginFill(0x00ff00);

                        clock.graphics.drawCircle(cx,cy,8);

// add logo

addLogo();

                        initClockPoint();

timer.addEventListener(TimerEvent.TIMER, initClockFinger);

timer.start();

                }

                

                //画整点

                public function initClockPoint():void

                {

                        for (var i:int=0; i<60; i++)

                        {

if(i%5==0){

clock.graphics.lineStyle(5,0x000000);

var h:int = i/5;

                                var px:Number = Math.sin(Math.PI*h/6)*pr;

                                var py:Number = Math.cos(Math.PI*h/6)*pr;

                                clock.graphics.beginFill(0x000000);

                                clock.graphics.drawCircle(cx+px, cy-py, 2);

 

var nx:Number = Math.sin(Math.PI*h/6)*(pr-20);

                                var ny:Number = Math.cos(Math.PI*h/6)*(pr-20);

if(i==0){

addPointNum(String(12),cx+nx, cy-ny);

}else{

addPointNum(String(h),cx+nx, cy-ny);

}

}else{

clock.graphics.lineStyle(3,0x3C3C3C);

var spx:Number = cx + Math.sin(Math.PI*i/30)*pr;

                       var spy:Number = cy - Math.cos(Math.PI*i/30)*pr;

clock.graphics.drawCircle(spx, spy, 1);

}

                        }

                }

 

private function addPointNum(txt:String,x:Number,y:Number){

var format:TextFormat = new TextFormat();

format.size = 32;

format.color=0x000000;

var num_txt:TextField = new TextField();

num_txt.selectable = false;

num_txt.htmlText = txt;

num_txt.x =x-50;

num_txt.y =y-20;

num_txt.setTextFormat(format);

num_txt.autoSize = TextFieldAutoSize.CENTER;

clock.addChild(num_txt);

}

 

private function addLogo(){

var format:TextFormat = new TextFormat();

format.size = 32;

format.color=0x000000;

format.bold = true;

var num_txt:TextField = new TextField();

num_txt.selectable = false;

num_txt.htmlText ="CYS";

num_txt.x =cx-50;

num_txt.y =cy+20;

num_txt.setTextFormat(format);

num_txt.autoSize = TextFieldAutoSize.CENTER;

clock.addChild(num_txt);

}

                

                //初始化指针

                public function initClockFinger(event:TimerEvent):void

                {

finger.graphics.clear();

                        

var time:Date = new Date();

                        

                        var sp:Point = new Point();//秒针

                        sp.x = cx + Math.sin(Math.PI*time.seconds/30)*sl;

                        sp.y = cy - Math.cos(Math.PI*time.seconds/30)*sl;

                        

                        var mp:Point = new Point();//分针

                        mp.x = cx + Math.sin(Math.PI*time.minutes/30)*ml;

                        mp.y = cy - Math.cos(Math.PI*time.minutes/30)*ml;

                        

                        var hp:Point = new Point();//时针

                        var hh:Number = time.hours;

                        if (time.hours>=12)

                                hh = hh - 12;

                        hp.x = cx + Math.sin(Math.PI*(hh+time.minutes/60)/6)*hl;

                        hp.y = cy - Math.cos(Math.PI*(hh+time.minutes/60)/6)*hl;

                        

                        //画指针

finger.graphics.moveTo(cx, cy);

finger.graphics.lineStyle(10,0x3C3C3C);

                        finger.graphics.lineTo(hp.x, hp.y);

finger.graphics.moveTo(cx, cy);

finger.graphics.lineStyle(8,0x00FFFF);

                        finger.graphics.lineTo(mp.x, mp.y);

                        finger.graphics.moveTo(cx, cy);

finger.graphics.lineStyle(5,0xCD853F);

                        finger.graphics.lineTo(sp.x, sp.y);                }

        }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值