带按钮的5分钟倒计时

时间:2013-05-17 07:26:36

标签: actionscript-3 flash actionscript flash-cs6

我必须将5分钟的倒计时时钟作为作业。我得到了as3的基础并被告知添加'开始' - '重置' - '停止'按钮。到目前为止,我有一个可观的倒计时,但无法控制它。我是as2和flash的新手所以我希望这不是其中之一“如果你知道,你应该知道你的答案”情况。我试图在网上找到的任何东西都没有真正帮助我,所以如果有人能告诉我,如果我可以在正确的路径或前夕,如果可以按下这个代码的按钮去做上面说明的话。在谢谢你:)

var secs = "0" + 0;
    var mins = 5;
    timerDisplay.text = mins + ":" + secs;

    var timerInterval = setInterval(countDown,1000);
    //DISPLAYS DYNAMIC TEXT
    function countDown()
    {
        secs--;
        if (secs < 0)
        {
            secs = 59;
            mins--;
        }
        if (secs < 10)
        {
            var secs2 = "0" + secs;
        }
        else
        {
            var secs2 = secs;
        }

        if (mins == 0 && secs == 0)
        {
            clearInterval(timerInterval);//STOPS TIME @ ZERO
        }
        timerDisplay.text = mins + ":" + secs2;
    }

2 个答案:

答案 0 :(得分:1)

由于这是一项任务,我不会给你任何代码,只是一些想法让你自己编写自己的代码。

您可能想要在舞台上添加两个(可能是三个)按钮。一个按钮可以是重置按钮,另一个按钮可以是在启动和停止之间进行切换的按钮(取决于计时器当前是否正在运行)。

重置按钮所需的唯一代码是将min变量和secs变量设置回其原始值(由于您的间隔代码可能加1秒)。如果您需要帮助开始使用按钮,则点击投掷功能会检查mc.onPress方法。

停止按钮所需的唯一代码是阻止间隔计数器继续计数的东西。我相信当你将你的计时器“清零”时,你已经有了这样的事情。

启动按钮所需的唯一代码是重启间隔计数器的东西。首次启动timerInterval时,您会执行某种操作。

如果有人在您完成倒计时后决定点击开始按钮,或者有人决定多次点击开始按钮,则无效。

在第一种情况下,倒计时将继续为负数,因此您可能希望编写一个不允许发生的if语句(在启动按钮功能内)。

在第二种情况下,每按一次按钮,倒计时将变得越来越快。创建一个跟踪程序是否停止的布尔值可能有助于解决这个问题。

澄清我上面提到的关于区间代码的陈述:你的代码将每1000毫秒永久递减。当你减少时,文本框只会被刷新,所以如果你试着用5分零秒重置,你会看到数字跳到4:59然后继续递减。如果您重置为5分1秒,则数字将显示为跳至5:00,然后从那里开始减少。

我希望这有帮助!

答案 1 :(得分:0)

    package 
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;

public class Test extends MovieClip {
    private var _timer:Timer = null;
    private var _repeatCount:int = 0;
    private var _totalMinutes:int = 5;

    public function Test() : void {
        addEventListener(Event.ADDED_TO_STAGE, _Init);

    }

    private function _Init(e:Event) : void {
        _repeatCount = _totalMinutes * 60;
        _timer = new Timer(1000, _repeatCount);
        _timer.addEventListener(TimerEvent.TIMER, _OnTimerFired);
        _timer.start();
    }

    private function _OnTimerFired(e:TimerEvent) : void {
        var minRem:int = (_repeatCount - _timer.currentCount) / 60 ;
        var secRem:int = (_repeatCount - _timer.currentCount) % 60;
        trace(minRem + ":" + secRem);
    }
}
}