Actionscript 3 从倒计时中添加或删除时间
我有一个计时器脚本:Actionscript 3 从倒计时中添加或删除时间,actionscript-3,flash,timer,Actionscript 3,Flash,Timer,我有一个计时器脚本: import flash.utils.Timer; import flash.events.TimerEvent; var secs:Number = 30;//second var mins:Number = 2;//minute var sec_t:String; var min_t:String; var my_timer:Timer = new Timer(1000); my_timer.addEventListener(TimerEvent.TIMER, ti
import flash.utils.Timer;
import flash.events.TimerEvent;
var secs:Number = 30;//second
var mins:Number = 2;//minute
var sec_t:String;
var min_t:String;
var my_timer:Timer = new Timer(1000);
my_timer.addEventListener(TimerEvent.TIMER, timerHandler);
my_timer.start();
showTimer.text = "02:30";
function timerHandler(event:TimerEvent):void
{
if (secs == 0)
{
if (mins == 0)
{
my_timer.stop();
trace("Countdown is finished.");
showTimer.text =String(min_t+sec_t)+" Times Up";
return;
}
else
{
--mins;
secs = 59;
}
}
else
{
--secs;
}
sec_t = (secs < 10) ? "0" + String(secs):String(secs);
min_t = (mins < 10) ? "0" + String(mins) + ":":String(mins) + ":";
trace(min_t+sec_t);
showTimer.text =String(min_t+sec_t);
}
wrongBtn.addEventListener(MouseEvent.CLICK, wrongClick);
function wrongClick(event:MouseEvent):void
{
secs = secs - 10;
}
correctBtn.addEventListener(MouseEvent.CLICK, correctClick);
function correctClick(event:MouseEvent):void
{
secs = secs + 10;
}
导入flash.utils.Timer;
导入flash.events.TimerEvent;
var秒:数字=30//第二
var分钟数:数字=2//分钟
var Secut:字符串;
变量最小值:字符串;
变量my_定时器:定时器=新定时器(1000);
my_timer.addEventListener(TimerEvent.timer,timerHandler);
我的计时器。开始();
showTimer.text=“02:30”;
函数timerHandler(事件:TimerEvent):无效
{
如果(秒=0)
{
如果(分钟==0)
{
我的计时器。停止();
跟踪(“倒计时完成”);
showTimer.text=字符串(最小+秒)+“向上计时”;
返回;
}
其他的
{
--分钟;
秒=59;
}
}
其他的
{
--秒;
}
秒t=(秒<10)?“0”+字符串(秒):字符串(秒);
min_t=(分钟<10)?“0”+字符串(分钟)+:”:字符串(分钟)+:”;
跟踪(最小+秒);
showTimer.text=字符串(最小+秒);
}
错误btn.addEventListener(MouseEvent.CLICK,错误单击);
函数错误单击(事件:MouseEvent):无效
{
秒=秒-10;
}
correctBtn.addEventListener(MouseEvent.CLICK,correctClick);
函数更正单击(事件:MouseEvent):无效
{
秒=秒+10;
}
有两个按钮,ErrorBTN
和correctBtn
。
errorbtn
将减少10秒的时间,correctbn
将增加10秒的时间。
但当计时器秒数在2:05左右时,我按了错误的BTN,时间显示不正确,如:“2:0-5”。同样,当时间大约为2:55,我按下correctBtn
,时间将显示为“2:65”
如何才能使其正常工作,以便正确显示输出?保持一个计时器计数,而不是单独的分和秒。您可以安全地增加和减少它,并始终保持正确的时间。要使其可读,只需格式化输出:
import flash.events.TimerEvent;
import flash.utils.Timer;
var timeRemaining:int = 150; // 150 seconds => 2:30 mins
showTime.text = formatTimeRemaining();
var timer : Timer = new Timer (1000);
timer.addEventListener (TimerEvent.TIMER, onTimer);
timer.start();
function onTimer ( ev:TimerEvent ) : void {
timeRemaining--;
if (timeRemaining < 0) {
timeRemaining = 0;
loseGame();
}
else
showTime.text = formatTimeRemaining ();
}
function formatTimeRemaining () : String {
var mins : int = int (timeRemaining / 60);
var minstr : String = mins < 10 ? "0"+mins : ""+mins;
var secs : int = timeRemaining % 60;
var secstr : String = secs < 10 ? "0"+secs : ""+secs;
return minstr+":"+secstr;
}
function loseGame () : void {
timer.stop();
trace("Countdown is finished.");
showTime.text = formatTimeRemaining() + (" Time's Up!");
}
wrongBtn.addEventListener(MouseEvent.CLICK, wrongClick);
function wrongClick(event:MouseEvent):void
{
timeRemaining -= 10;
}
correctBtn.addEventListener(MouseEvent.CLICK, correctClick);
function correctClick(event:MouseEvent):void
{
timeRemaining += 10;
}
导入flash.events.TimerEvent;
导入flash.utils.Timer;
变量剩余时间:int=150;//150秒=>2:30分钟
showTime.text=formatTimeRemaining();
var定时器:定时器=新定时器(1000);
timer.addEventListener(TimerEvent.timer,onTimer);
timer.start();
时间函数(ev:TimerEvent):无效{
剩余时间--;
如果(剩余时间<0){
剩余时间=0;
loseGame();
}
其他的
showTime.text=formatTimeRemaining();
}
函数formatTimeRemaining():字符串{
var分钟:int=int(剩余时间/60);
var minstr:字符串=分钟<10?“0”+分钟:“+分钟;
var secs:int=剩余时间%60;
变量secstr:String=secs<10?“0”+secs:“+secs;
返回minstr+“:”+secstr;
}
函数loseGame():void{
timer.stop();
跟踪(“倒计时完成”);
showTime.text=formatTimeRemaining()+(“时间到了!”);
}
错误btn.addEventListener(MouseEvent.CLICK,错误单击);
函数错误单击(事件:MouseEvent):无效
{
剩余时间-=10;
}
correctBtn.addEventListener(MouseEvent.CLICK,correctClick);
函数更正单击(事件:MouseEvent):无效
{
剩余时间+=10;
}
保持一个计时器计数,而不是单独的分秒计数。您可以安全地增加和减少它,并始终保持正确的时间。要使其可读,只需格式化输出:
import flash.events.TimerEvent;
import flash.utils.Timer;
var timeRemaining:int = 150; // 150 seconds => 2:30 mins
showTime.text = formatTimeRemaining();
var timer : Timer = new Timer (1000);
timer.addEventListener (TimerEvent.TIMER, onTimer);
timer.start();
function onTimer ( ev:TimerEvent ) : void {
timeRemaining--;
if (timeRemaining < 0) {
timeRemaining = 0;
loseGame();
}
else
showTime.text = formatTimeRemaining ();
}
function formatTimeRemaining () : String {
var mins : int = int (timeRemaining / 60);
var minstr : String = mins < 10 ? "0"+mins : ""+mins;
var secs : int = timeRemaining % 60;
var secstr : String = secs < 10 ? "0"+secs : ""+secs;
return minstr+":"+secstr;
}
function loseGame () : void {
timer.stop();
trace("Countdown is finished.");
showTime.text = formatTimeRemaining() + (" Time's Up!");
}
wrongBtn.addEventListener(MouseEvent.CLICK, wrongClick);
function wrongClick(event:MouseEvent):void
{
timeRemaining -= 10;
}
correctBtn.addEventListener(MouseEvent.CLICK, correctClick);
function correctClick(event:MouseEvent):void
{
timeRemaining += 10;
}
导入flash.events.TimerEvent;
导入flash.utils.Timer;
变量剩余时间:int=150;//150秒=>2:30分钟
showTime.text=formatTimeRemaining();
var定时器:定时器=新定时器(1000);
timer.addEventListener(TimerEvent.timer,onTimer);
timer.start();
时间函数(ev:TimerEvent):无效{
剩余时间--;
如果(剩余时间<0){
剩余时间=0;
loseGame();
}
其他的
showTime.text=formatTimeRemaining();
}
函数formatTimeRemaining():字符串{
var分钟:int=int(剩余时间/60);
var minstr:字符串=分钟<10?“0”+分钟:“+分钟;
var secs:int=剩余时间%60;
变量secstr:String=secs<10?“0”+secs:“+secs;
返回minstr+“:”+secstr;
}
函数loseGame():void{
timer.stop();
跟踪(“倒计时完成”);
showTime.text=formatTimeRemaining()+(“时间到了!”);
}
错误btn.addEventListener(MouseEvent.CLICK,错误单击);
函数错误单击(事件:MouseEvent):无效
{
剩余时间-=10;
}
correctBtn.addEventListener(MouseEvent.CLICK,correctClick);
函数更正单击(事件:MouseEvent):无效
{
剩余时间+=10;
}