flash as3.0如何将一个数字在固定时间内从0增长到1000?

2024-11-17 19:47:27
推荐回答(1个)
回答(1):

import flash.utils.Timer;
import flash.events.TimerEvent;

//开始数字
var startNumber:Number = 0;
//结束数字
var endNumber:Number = 1000;
//花费时间
var custTime:Number = 5000;// 1000=1秒
//变化频率
var rate:Number = 100;// 1000=1秒
//显示
var showNumer:Number=startNumber;

function myProgress(event:TimerEvent)
{
showNumer+=(endNumber-startNumber)/custTime*rate
trace(showNumer);
}
var timer:Timer = new Timer(rate,custTime / rate);
timer.addEventListener(TimerEvent.TIMER,myProgress);
timer.addEventListener(TimerEvent.TIMER_COMPLETE,out);
function out(event:TimerEvent)
{
trace("end");
}
timer.start()

//=================================================================分割线
//建议使用以下代码,但是不能是小数(时间与频率计算的结果也不能是小数)
//因为Number型 在多次加减后会 出现 1.0000000001 这样的情况
//根据你自己的需求 选用吧 刚刚写的!

import flash.utils.Timer;
import flash.events.TimerEvent;

//开始数字
var startNumber:int = 0;
//结束数字
var endNumber:int = 1000;
//花费时间
var custTime:int = 5000;// 1000=1秒
//变化频率
var rate:int = 100;// 1000=1秒
//显示
var showNumer:int=startNumber;

function myProgress(event:TimerEvent)
{
showNumer+=(endNumber-startNumber)/custTime*rate
trace(showNumer);
}
var timer:Timer = new Timer(rate,custTime / rate);
timer.addEventListener(TimerEvent.TIMER,myProgress);
timer.addEventListener(TimerEvent.TIMER_COMPLETE,out);
function out(event:TimerEvent)
{
trace("end");
}
timer.start()