钟表效果

本文介绍了一个使用Flash API创建动态时钟的过程。作者SinSoul通过代码详细展示了如何利用Shape类绘制时钟的各个部分,包括时针、分针、秒针,并通过Timer定期更新它们的位置来反映当前时间。此外,还介绍了如何在时钟面上添加数字标记。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package {
	import flash.display.Shape;
	import flash.events.TimerEvent;
	import flash.text.TextField;
	import flash.utils.Timer;
	import flash.display.Sprite;
         
        /*
         *author : SinSoul 
         *blogs: http://www.cnblogs.com/sinsoul
         */
	public class kk extends Sprite {
		var faces:Shape;
		var hour:Shape;
		var minute:Shape;
		var second:Shape;
		var timer:Timer=new Timer(1000);
		//var hd:Number;           
		public function kk() {

			init();
			initstate();
			timer.addEventListener(TimerEvent.TIMER,ll);
			timer.start();

		}
		function init() {
			faces=new Shape();
			hour=new Shape();
			minute=new Shape();
			second=new Shape();

			faces.graphics.lineStyle(5,0xff0000,0.3);
			faces.graphics.beginFill(0xffff35,0.8);
			faces.graphics.drawCircle(275,200,120);
			addChild(faces);

			minute.graphics.lineStyle(3,0x456123,0.9);
			minute.graphics.moveTo(0,0);
			minute.graphics.lineTo(0,-80);
			addChild(minute);
			second.graphics.lineStyle(1,0x456879,0.6);
			second.graphics.moveTo(0,0);
			second.graphics.lineTo(0,-100);
			addChild(second);
			hour.graphics.lineStyle(5,0xff0000,0.9);
			hour.graphics.moveTo(0,0);
			hour.graphics.lineTo(0,-50);
			addChild(hour);
			hour.x=275;
			hour.y=200;
			minute.x=275;
			minute.y=200;
			second.x=275;
			second.y=200;
			for (var i:int=1; i<13; i++) {
				var txt:TextField=new TextField();
				txt.text=String(i);
				txt.x=Math.cos(Math.PI*2/12*i-Math.PI/2)*115+269;
				txt.y=Math.sin(Math.PI*2/12*i-Math.PI/2)*115+190;
				addChild(txt);
			}


		}

		function initstate() {
			var date:Date=new Date();
			hour.rotation=date.hours*30+date.minutes*0.5;
			minute.rotation=date.minutes*6+date.seconds*0.1;
			second.rotation=date.seconds*6 ;
		}


		function ll(e:TimerEvent) {
			var date:Date=new Date();
			hour.rotation=date.hours*30+date.minutes*0.5;
			minute.rotation=date.minutes*6+date.seconds*0.1;
			second.rotation=date.seconds*6;
		}

	}
}

 

转载于:https://www.cnblogs.com/sinsoul/archive/2010/11/13/1876444.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值