上周由于工作需要,使用flash+AS3开发的倒计时显示效果。
具体的实现代码:
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;
import flash.net.URLRequest;
function doubleString(time:int):String{
var r:String=time.toString();
if(r.length==1){
return "0"+r;
}else{
return r;
}
}
function goRedirect(evt:MouseEvent):void {
var req:URLRequest = new URLRequest("http://xxx.domain.com/greatmessage");
navigateToURL(req,'_blank');
}
var ticker:Timer = new Timer(1000);
ticker.addEventListener(TimerEvent.TIMER, onTicker);
ticker.start();
tmBtn.addEventListener(MouseEvent.CLICK, goRedirect);
var downDate:Date = new Date(2011,3,22,24,0,0); //月份是从0开始计数的
function onTicker(evt:TimerEvent):Boolean {
var currentDate:Date = new Date();
var currentTime:Number = currentDate.valueOf();
var endTime:Number = downDate.valueOf();
var currentOffset:Number = currentDate.getTimezoneOffset();
var minusN:Number = endTime - currentTime;
//check if we started
if( minusN <= 0)
{
restime_day.text = '0';
restime_hour.text = '00';
restime_minute.text = '00';
restime_second.text = '00';
return true;
}
var minusSecond:int = downDate.getSeconds() - currentDate.getSeconds();
var minusMinute:int;
var minusHour:int;
var minusDate:int;
var minusMonth:int;
var minusYear:int;
var sFlag:Boolean;
var mFlag:Boolean;
var hFlag:Boolean;
var monFlag:Boolean;
if(minusSecond < 0){
minusSecond = 60+minusSecond;
sFlag = true;
}
minusMinute = downDate.getMinutes() - currentDate.getMinutes();
if(sFlag)
minusMinute--;
if(minusMinute < 0){
minusMinute = 60 + minusMinute;
mFlag = true;
}
minusHour = downDate.getHours() - currentDate.getHours();
if(mFlag)
minusHour--;
if(minusHour < 0){
minusHour = 24 + minusHour;
hFlag = true;
}
minusDate = downDate.getDate() - currentDate.getDate();
minusMonth = downDate.getMonth() - currentDate.getMonth();
if(hFlag){
minusDate--;
}
if(minusDate < 0){
switch(currentDate.getMonth() + 1){
case 1,3,5,7,8,10,12:{
minusDate = downDate.getDate() + (31- currentDate.getDate());
}
case 4,6,9,11:{
minusDate = downDate.getDate() + (30- currentDate.getDate());
}
case 2:{
if((currentDate.getFullYear()%4 == 0 && currentDate.getFullYear()%100 != 0)||(currentDate.getFullYear()%400 == 0)){//闰年
minusDate = downDate.getDate() + (29 - currentDate.getDate());
}else{
minusDate = downDate.getDate() + (28- currentDate.getDate());
}
}
}
minusMonth--;
}
if(minusMonth < 0){
minusMonth = 12+minusMonth;
monFlag = true;
}
minusYear = downDate.getFullYear() - currentDate.getFullYear();
if(monFlag){
minusYear--;
}
restime_day.text = String(minusDate);
restime_hour.text = doubleString(minusHour);
restime_minute.text = doubleString(minusMinute);
restime_second.text = doubleString(minusSecond);
return true;
}
上述代码只能使用AS3.0来实现,其中,Timer定时器类只在AS3.0才实现,1.0、2.0版本时,主要使用setInterval来实现的。
- 大小: 234.1 KB
分享到:
相关推荐
手把手教你用Flash制作任意时间的倒计时器,内附图片说明,简单易学。
flash cs6 制作倒计时器,可以设置任意分钟和秒数,使用AS3.0的Timer类编写,计时相对于AS2.0的setInterval更为准确。
flash cs6+as3.0制作的倒计时
300秒的倒计时,AS2.0。可以用于各种场合,将其中的变量n改变即可改变秒数。
flash as 3.0 主要是flash中actionscript脚本语言的练习使用,包括random函数,if else条件判断语句的使用。可以作为案例来提供学生学习flash脚本语言的兴趣。附word版本详细教程及flash源代码。
FLASH as3 多项计时器 用于flash游戏的制作 FLASH as3 多项计时器
制作一些简单的flash倒计时,as3脚本,简单明了
flash as2.0写的一个简单的钟表,供需要的朋友参考。
使用as2.0制作的flash计时器,可选择正计时或者倒计时,可自己输入计时时间,有结束提示音。
flash计时器的AS代码源文件。 两个不同的视频计时器的制作方式。
含有用flash cs4制作的各种例子,如时钟、倒计时、放大镜、视音频控制、下雪、组件应用等三十多个例子,含有代码。是as3.0。
AS3.0实例教程二-时钟的制作 比较简单,感兴趣的可以试试看
原创FLASH源码 逼真的电子秒表 有时钟,有秒表,AS2.0编程,现在,FLASH可能有点过时,用于制作多媒体课件还是很方便的。
TimeClick.as ---------------------- 计时器 TimeCount.as ---------------------- 计数器 TimeFormat.as ---------------------- 格式化时间 text: BitmapText.as ---------------------- bitmap文本副本 ...
用flash制作的一个世界时钟,非常好的一个计时的工具,非常非常好.非常好就对了.
这个项目会视内存模块的不同,为接下来四个项目设定最佳的计时方式。默认值为「By SPD」。这个默认值会读取SPD (Serial Presence Detect) 装置的内容,并且依据SPD内容设定这四个项目。内存模块上的EEPROM (只读...