用as3写的纯代码时钟,通过获取系统时间模拟时钟的转动…效果预览见下;
设计思路:表盘设计为一个sprite的容器obj,新建box类标示时钟刻度,时针分针秒针就是三种不同颜色不同长度的线条,可将画线封装成一个方法, 返回颜色和长度两个参数,而后在main函数中调用即可,可达到简化程序的目的…三个指针以表盘中心旋转,通过公式计算旋转角度即可…
代码参考:
1.box类 时钟刻度
package{
import flash.display.Shape;
public Class Box extends Shape{
public function Box():void{
init();
}
private function init():void{
this.graphics.beginFill(0x00ff00);
this.graphics.drawRect(-3,-85,6,25); //注意矩形中心点
this.graphics.endFill();
}}}
2.指针类Xian
package{
import flash.display.Shape;
public Class Xian extends Shape{
public function xian(len:uint,color:uint):void{
init(len,color);
}
priate function init(len:uint,color:uint):void{
this.graphics.lineStyle(2,color); //粗细,颜色
this.graphics.moveTo(0,0);
this.graphics.lineTo(0,len*-1); //反向,否则超出舞台边界
this.graphics.endFill();
}
}}}
3. Main()函数
package{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.DateEvent;
public Class Main extends Sprite{
private var shizhen:Xian=new Xian(25,0x00ff00);
private var fenzhen:Xian=new Xian(35,0xff00ff);
private var miaozhen:Xian=new Xian(55,0x00ffff);
private var shijian:Date=new Date();
public function Main():void{
init();
}
private function init():void{
private var obj:Sprite=new Sprite();
obj.x=obj.y=240;
for(var i:uint=0;i<12;i++){
var biaoshi:Box=new Box();
obj.rotation+=i*30;
obj.addChild(biaoshi);
}
obj.addChild(shizhen);
obj.addChild(fenzhen);
obj.addChild(miaozhen);
obj.addEventListener(Event.ENTER_FRAME,dong);
private function dong():void{
shijian=new Date();
miaozhen.rotation=shijian.seconds*6;
fenzhen.rotation=shijian.minutes*6+shijian.seconds*0.1;
shizhen.rotation=shijian.hours*30+shijian.minutes*0.5+shijian.seconds*1/120;
}
}
}
博视界科技专注于沉浸式全景数字餐厅、全息酒店宴会厅,旨在帮传统餐饮用科技玩跨界,欢迎咨询! 官方网站:www.boseetech.com 联系方式:


猜您还喜欢:
- 怎么解决as写的flash程序画面卡顿的问题 (此文被围观5426次)
- [AS3.0实例教程] 熟悉新的事件机制和addChild的运用 (此文被围观3327次)
- [Flash AS3实例教程]as3中数组的进一步用法 (此文被围观2938次)
- AS3通俗版教程-歪谈as语法(下) (此文被围观2624次)
- AS3.0冒泡算法 (此文被围观4232次)
- [Flash AS3实例教程]as3鱼眼放大镜 (此文被围观5372次)
- as3中如何判断两个按键同时按下组合键 (此文被围观4836次)
- [AS3系列教程]函数的返回语句 (此文被围观2619次)
见多532170236识广, 才高八斗wtwzzwtwzz.