好的,这是我正在制作的游戏的另一个问题。我正在整理第二级,你需要在合适的时间按下一长串键。过早或过晚按下它们会导致失败。我需要知道的是如何检测按键ISN按下的时间,应该是什么时候按下的。这就是我到目前为止所做的:
var count3:Number = 23;
var myTimer3:Timer = new Timer(1000, count3);
var timeLeft3:Number = count3;
var buttonPressed:Boolean = false;
var btnCounter:Number = 2;
var btnTimer:Timer = new Timer(1000, btnCounter);
myTimer3.addEventListener(TimerEvent.TIMER, countdown3);
myTimer3.start();
btnTimer.addEventListener(TimerEvent.TIMER, btnCountdown);
btn1.addEventListener(MouseEvent.CLICK, buttonPress);
btn1.visible = false;
btn2.visible = false;
btn3.visible = false;
btn4.visible = false;
btn5.visible = false;
btn6.visible = false;
btn7.visible = false;
btn8.visible = false;
btn9.visible = false;
function countdown3(event:TimerEvent): void {
if (((count3)-myTimer3.currentCount)==20) {
btn1.visible = true;
btnTimer.start();
} else if (((count3)-myTimer3.currentCount)==19) {
btn1.visible = true;
} else {
btn1.visible = false;
}
}
function btnCountdown(event:TimerEvent):void {
if (((btnCounter)-btnTimer.currentCount)==0) {
if (buttonPressed = true) {
btnTimer.stop();
} else {
gotoAndStop(2);
}
}
}
function buttonPress (event:MouseEvent): void {
buttonPressed = true;
}
出于某种原因,当btnCounter达到0时,它不会做任何事情。如果有人可以帮我解决这个问题,那就太棒了。感谢。
N.B。这是一个个人项目,我只是在学习动作脚本
答案 0 :(得分:0)
在按下按钮时启动计时器(例如,如果必须在2秒内按下按钮,则将计时器的间隔设置为2秒)。
然后创建一个全局Boolean
变量(或类成员变量,但是您的场景已设置)并最初将其设置为false
。按下按钮时,将此变量设置为true
并禁用计时器。
如果计时器触发并且此变量为false
,则表示该按钮未被禁用,因此用户未在2秒内点击该按钮。
不要使用非常短的时间 - 定时器不是很准确,处理器速度可能会影响它们的持续时间。 (人类的反应时间不谈。)