flash as3.0制作数字式的时钟

2024-11-29 09:50:48
推荐回答(2个)
回答1:

你要用矢量图,最简单的方法就是做0-9十个数字的mc。
然后获取h、m、s每一位上的数字,一共6个数字(我这里只获取了s的),即需要先实例化6*10=60个影片剪辑实例(用循环来写吧,不推荐在每秒侦听中再实例化,因为不停地new是比较消耗资源的,事先new60个实例,相当于对象池,可以重复利用),再用switch来判断该放哪一个mc上去。然后用addChild和removeChild来改变显示的mc。
如果你觉得用不停地addChild removeCHild效率太低就在外面做好10张jpg,导入进去,让他们“为actionscript导出”成为bitmapData类,然后只需要添加1个Bitmap实例到舞台,再每秒侦听中改变Bitmap的bitmapData属性

var time:Date ;
var secondNum:int;

var timer:Timer = new Timer(1000,0);
timer.addEventListener(TimerEvent.TIMER,onTimer);
timer.start();

function onTimer(e:TimerEvent):void{
time = new Date();
secondNum = time.seconds;
var s_1:int;
var s_2:int;
if(secondNum >= 10){
s_1 = secondNum / 10;
s_2 = secondNum % 10;
}else{
s_1 =0;
s_2 = secondNum;
}
trace(s_1,s_2);
}
//output
5 8
5 9
0 0
0 1
0 2

回答2:

这个容易。
新建Flash As3.0 文档(不是脚本,而是Flash工程文件.fla格式)。
设置好舞台大小(就是你希望的时钟面板的的大小,例如150,50).。
舞台中间绘制合理大小的3个文字区域(TextField)分别用来显示时分秒,分别在属性面板中设置变量名如,myHour,myMinute,mySecond。
然后选中第一帧,按F9打开动作面板。输入控制代码即可。
冒号可以用影片剪辑实现。