【问题标题】:ActionScript 3 - Reseting timer every frame (Quiz)ActionScript 3 - 每帧重置计时器(测验)
【发布时间】:2014-10-27 18:22:51
【问题描述】:

我一直在尝试创建一个简单的测验,您可以在其中选择一个答案,播放正确/错误动画,然后让您选择另一个问题。每个问题框都给您 30 秒的时间来选择答案,然后将您转到“时间到了”框。很简单。到目前为止,除了计时器之外,一切都运行得很顺利。我可以让它在一个框架内工作,但是当你单击一个按钮或由于某种其他原因被重定向到另一个框架时,它会使整个程序崩溃。

我认为我可以通过在“退出帧事件”处停止计时器来解决这个问题,但这只会阻止计时器甚至启动(而程序的其余部分继续顺利工作);

发布代码可能还不够,所以请自己检查文件: http://www.filedropper.com/semifinalsq

我需要这个用于学校测验,但我已经好几天没在互联网上找到任何东西了。在我“以图形方式”构建和链接整个事物的方式中,我可能有多个错误或错误,在这种情况下,如果没有人查看整个程序,我将无法修复它。

如果你可以从只有 1 帧的代码中做任何事情:

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

var myTimer:Timer = new Timer(1000);
myTimer.addEventListener(TimerEvent.TIMER, countdownHandler);
function  countdownHandler(event:TimerEvent):void{  
countdown.text = 30-myTimer.currentCount+" s";
if(myTimer.currentCount==30){gotoAndStop(5)}    
}   

这是我的计时器代码,其中第 5 帧是“时间到了”帧。这一点工作得很好,但是我如何在它的基础上进行构建,以便在输入带有计时器的新帧时重置它? (那么,如何在某些帧中停止它并重新启动它?);

我们将不胜感激!

【问题讨论】:

  • 请贴出相关代码。 (有些人不喜欢从陌生人那里下载文件)。
  • 是的,我明白了...帖子已编辑。
  • 你在哪里开始(和停止)你的计时器?
  • 在转到第 5 帧之前,您需要停止计时器,并删除其上的事件侦听器。
  • 我没有定义任何触发事件。只要有问题的框架开始,它就会开始。 (我希望它在有问题的每一帧上重置,但我也有不需要计时器的帧,因此没有动态文本对象供计时器显示,所以每当带有此代码的帧进入这些帧时,闪烁吓坏了)

标签: actionscript-3 flash countdowntimer


【解决方案1】:

解决方案:

myTimer.stop();
myTimer.removeEventListener(TimerEvent.TIMER, countdownHandler);

在按钮调用的函数中添加。由于它是一个测验,答案是按钮并导致另一个帧,而之前停止计时器并删除它的侦听器(上面的代码在 'goto' 帧之前并停止...);

虽然这在其他情况下可能没有帮助,但对于类似结构的测验来说,这是一个非常简单的解决方案。

特别感谢用户 LDMS

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多