Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 从倒计时中添加或删除时间_Actionscript 3_Flash_Timer - Fatal编程技术网

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;
}