我正在尝试创建一个简单的flex4项目,该项目涉及一些触发其他功能的计时器。
我没有太多使用Action Script的经验,更不用说计时器事件了。
这里有一些我的代码似乎在大多数情况下工作,但是你的行是我加总的总分(得分=得分+1;)似乎只是在我测试时添加和添加应用。我认为是因为定时器一直在触发功能,但我不确定。
private var score:int = 0;
private function submit():void {
this.currentState = 'loading';
var timer:Timer = new Timer(2200);
timer.addEventListener(TimerEvent.TIMER, removeLoading);
timer.start();
}
private function removeLoading(event:TimerEvent):void{
removeloading.play();
var timer1:Timer = new Timer(1000);
timer1.addEventListener(TimerEvent.TIMER, viewResults);
timer1.start();
this.currentState = 'results';
}
private function viewResults(event:TimerEvent):void{
if (q1_t.selected == true){
answer1m.text = 'You Answer the Question Correctly.';
score = score +1;
} else {
answer1m.text ='The Correct answer was: '+ q1_t.label;
}
if (q2_f.selected == true){
answer2m.text = 'You Answer the Question Correctly.';
score = score +1;
} else {
answer2m.text ='The Correct answer was: '+ q2_f.label;
}
finalscore.text = score.toString();
}
答案 0 :(得分:2)
所以我做了一些研究,结果发现我没有包含第二个计时器参数。
第二个参数是在停止之前调度TimerEvent.TIMER事件的次数。如果将第二个参数设置为0(零)或完全省略它,则计时器将永远运行(或直到您在计时器实例上调用stop()方法。
因为我只想在需要添加1时运行该事件。
由此:
var timer:Timer = new Timer(2200);
对此:
var timer:Timer = new Timer(2200,1);