倒计时的flash怎么做

2025-12-14 12:37:40
推荐回答(1个)
回答1:

其时是非常地简单,声明一个变量让它的值递减就可以。

示例1 as2.0

var num=10
this.onEnterFrame=function(){
    if(num>0){
        num--
        trace(num)
    }else{
        onEnterFrame=null
    }
}

示例2 as3.0

var num:Number = 10
stage.addEventListener(Event.ENTER_FRAME,countdown);

function countdown(e:Event ):void
{
    if(num>0){
    num--
    trace(num)
    } 
    else
   {
      stage.removeEventListener(Event.ENTER_FRAME,countdown);

   } 
}

那么要是分秒的格式,如  00:00 这样的格式,怎么表达呢

示例3 

var frameRate = 24;//帧速

var min = 10;//10分钟

/*---进入帧事件--------------------------------------------------------------

*--- a%b=c 表示a整除b的余数为c 如1÷2 商为0余1, 2÷2商1余0,3÷2商1余1
不难看出是1,3除以2余数都是1,想要得到0和1这样的数就这样表示为:X%2(X是变量)

*--- Math.ceil()向上取整,0.5 取1,Math.floor () 向下取整 0.5取0

*--- time_txt 是一个动太文本的实例名称。
---------------------------------------------------------------------------*/
trace(Math.floor(0.5));
this.onEnterFrame = function()
{
min -= 1 / frameRate / 60;//计算逝去一分钟经过多少秒,一秒读取多少帧。
var sec = min * 60 % 60;//将每减少一分钟转为60秒
if (Math.ceil(sec) >= 10)
{
time_txt.text = "0" + Math.ceil(min - 1) + ":" + Math.ceil(sec);
}
else
{
time_txt.text = "0" + Math.ceil(min - 1) + ":" + "0" + Math.ceil(sec);
}
if (Math.ceil(min) == 0 and Math.ceil(sec) == 0)
{
onEnterFrame = null;
}
};

示例4 as3.0

import flash.events.Event;

var min:Number = 10;//分数
var sec:Number = 0;//秒数

/*-------------------------------帧频侦听函数---------------------------------------*/

stage.addEventListener(Event.ENTER_FRAME,countdown);

function countdown(e:Event ):void
{
min -=  1 / 24 / 60;
sec = min * 60 % 60;

if (Math.ceil(sec) < 10)
{
time_txt.text="0"+Math.ceil (min-1).toString ()+":"+"0"+Math.ceil (sec).toString ();
}
else
{
time_txt.text="0"+Math.ceil (min-1).toString ()+":"+Math.ceil (sec).toString ();
}
if (Math.ceil(min) == 0 && Math.ceil(sec) == 0)
{
stage.removeEventListener(Event.ENTER_FRAME,countdown);
}

}