原创文章,谢绝转载。
已经做成了好久好久好久的倒计时小程序。
一、前言
这是一个用来我老师上课考试给我们控制时间使用的简易倒计时程序。
学校使用希沃智慧白板,但是希沃自带的倒计时最多只有59分钟59秒,满足不了考试倒计时的需求(考试时间有150分钟的语文,120分钟的数学&英语,90分钟的其他6个学科,60分钟的希沃倒计时不够用),于是——
第一代倒计时程序在三十分钟的紧张赶制下出炉了。
第一代
下面放上第一代的简陋界面截图。
是不是尬的一批。
还有N个bug等着你。
所以在一次放假我花了一点时间更新了一下:
第二代
增加了一些功能,修复了已知bug。
下面还是放上几张截图:
功能多了,也好看了。
设计思路
其实本来我是想把代码贴上来的,但我本人十分十分的业余,就不贴出来让大家笑话了,简单说一下实现思路,哪位大佬有更好的实现方法欢迎评论雅正。
1.关于计时原理
采用帧频计时,通过15fps计算得900fpm。
可能这个实现方法雀食是有点龌龊:)
2.关于代码实现
一打开程序就设置全屏,定义一些必要的变量,包括时间,音量,倒计时十五分钟提醒开关等等
fscommand("fullscreen", "true");
var t1:Number;
var t2:Number;
var t3:Number;
var t4:Number;
var ans1:Number;
var ans2:Number;
var v:Number;
var ans:Number;
var f:Number;
var sss:String;
sss = "开";
t1=5;
t2=0;
t3=9;
t4=0;
ans1=50;
ans2=90;
v=10;
f=1;
var times:Number;
times = 2;
然后为声音容器定义
dingSound = new Sound();
ringSound = new Sound();
fingSound = new Sound();
然后在此处停止,等待设置。
stop();
大家注意到在上面的代码中好像有一些冗余代码,因为一开始这个程序是设计为一二卷分离,分别计时,所以才有times
这个变量,还有t1
这个没有必要存在的变量,因为当时比较急,脑子也比较混乱,就没删除这几个变量,于是紧接着在下面为其赋值。
在首页绘制几个动态文本框以及按钮用来为 t1 t2
等变量赋值。
为控制全屏的按钮添加关于独立播放器的全屏代码。
on (press) {
fscommand("fullscreen", "false");
}
press
方式而不是 release
方式,这是考虑到希沃白板设备为触屏操作,press
比 release
更适合设备响应。
每次触到该分钟结束便 t2--
,并判断 t2
是否 ==-1;
否,跳回分钟起始并往复循环;
是,则跳到倒计时结束画面。
在结束画面调用声音容器播放提前准备好的铃声。
ringSound.attachSound(2);
ringSound.setVolume(v);
ringSound.start();
stop();
v
。否则会导致设置的音量不起作用。
再放几段其他的代码就搞定了。
ps:至于中间计时的画面搞一个动画补间就好了。
注意事项
1.在设置音量的时候记得为该整型变量设定范围,避免出现负数或者>100的情况,并且每一次设置音量之后都要为声音容器设置音量属性。
on (press) {
v-=5;
if (v<-1) {
v=0;
}
dingSound.setVolume(v);
ringSound.setVolume(v);
fingSound.setVolume(v);
}
2.文本框中一定要嵌入数字 0-9
以及 -
(负号)的字形,否则到别的电脑上运行可能会出现跑版或者漏字。
3.关于调用外部swf的问题。
本来我是想用我的一个外部swf中的音频,但是在声音容器调用总是没有声音,被 loadMovie
之后就没有声音了。
原来,attachSound
用法是从库中复制声音到舞台。而 loadMovie
后存在多个库,而影片引用的是绑定声音对象的影片剪辑所对应的库。而主库里面没有你所引用的声音文件,故无法放出声音。具体解决方案还没有找到(主要是我没去找),就先将就着用吧,我就把声音文件封装到主swf下了。
经测试果然放出了声音。
其它
这个程序还有一个母版本,是一个一二卷分离计时的程序(上文中有提到过),下面也放几张截图。
大家可能也从UI排版和之前冗余的代码上看出来了,这个带一二卷分离功能的是原版:)
3 条评论
竟然有希沃白板啊!!!
niú bī
加油!
East or west,you are the best.
ヾ(≧∇≦*)ゝ