如何正确设置倒计时?
我从33,000.00到零。它以某种方式工作,但减号运算符出现在文本字段中。
//Countdown from 33,000.00 to zero
var timer:Timer = new Timer(10);
var count:int = -3300000;
var fcount:int = 0;
timer.addEventListener(TimerEvent.TIMER, incrementCounter);
timer.start();
function incrementCounter(event:TimerEvent) {
count++;
fcount=int(count);
mytext.text = formatCount(fcount);
}
function formatCount(i:int):String {
var fraction:int = i % 100;
var whole:int = i / 100;
return ("0000000" + whole).substr(-7, 7) + "." + (fraction < 10 ? "0" + fraction : fraction);
}
alt text http://www.ashcraftband.com/myspace/videodnd/nm___.jpg
示例
我需要一些我可以用XML更新的东西,根据变量是一个向上计数器或向下计数器。
//Count up from 33,000.00
var countValue:int = 3300000;
count = countValue;
//Count down from 33,000.00
var countValue:int = -3300000;
count = countValue;
这就是我所需要的一切 fcount = Math.abs(count)
答案 0 :(得分:1)
摆脱减号:
// Absolute value of i will be calculated in abs_i.
var abs_i:int = i;
if (abs_i < 0)
abs_i = -abs_i;
var fraction:int = abs_i % 100;
var whole:int = abs_i / 100;
要处理您希望计算的情况,您将不得不做一些不同的事情。最好有两个函数,包括一个名为decrementCounter的新函数。如果您愿意,可以有一个事件处理程序,它使用if (counter < 0)
来确定应该调用哪个。
编辑:在重新阅读您的代码时,您似乎打算
fcount=int(count)
可能会解决您的问题,但您可以致电
fcount = Math.abs(count)
然后您的“格式化计数”将始终为正值。然后你可以忽略我上面推荐的变化。
(您无需拨打int()
,因为count
已经是[{1}}类型,int
也是如此。)
答案 1 :(得分:0)
为什么不将Timer.repeatCount设置为3300000?
答案 2 :(得分:0)
在您的代码中只需更改:
var fraction:int = Math.abs(i % 100);
var whole:int = Math.abs(i / 100);
("0000000" + whole).substr(-**5**, 7)