Javascript 处理-按下按钮3秒-忽略进一步按下按钮
我有一个包含Arduino输入的处理脚本 在按下按钮时,我有一个元素“增长”,椭圆持续3秒,然后恢复正常 我似乎无法解决的是如何在这3秒钟内忽略进一步的按钮按下 这是简化的代码Javascript 处理-按下按钮3秒-忽略进一步按下按钮,javascript,timer,processing,Javascript,Timer,Processing,我有一个包含Arduino输入的处理脚本 在按下按钮时,我有一个元素“增长”,椭圆持续3秒,然后恢复正常 我似乎无法解决的是如何在这3秒钟内忽略进一步的按钮按下 这是简化的代码 int savedTime; int growTime = 3000; void setup() { //Start counting milliseconds savedTime = millis(); } void draw() { if (arduino.digitalRead(2) =
int savedTime;
int growTime = 3000;
void setup() {
//Start counting milliseconds
savedTime = millis();
}
void draw() {
if (arduino.digitalRead(2) == Arduino.HIGH){
//Starts Timer for 'Grow' animation
savedTime = millis();
}
int passedTime = millis() - savedTime;
if (passedTime >= growTime) {
opacity = 10;
if (circleSize > 0){
scale(circleSize);
noStroke();
circleSize -= 0.0009;
}
}else{
scale(circleSize);
noStroke();
circleSize += 0.0003;
opacity = 70;
}
ellipse(0, 0, circleSize, circleSize);
}
我知道我当前的代码检查最后一次按下按钮的时间,如果我继续按下按钮,“增长”效果将持续激发
如果“增长”效应正在发生,我如何做到这一点,进一步的按钮按下被忽略
我希望这是有意义的,我已经包括了人们需要了解的内容。这是一个更大的剧本的一部分,所以如果我错过了一些重要的东西,请原谅 < P>你应该以某种方式存储你已经在处理最后一个输入的中间,以便进一步的点击被忽略。 我会使用一个单独的布尔变量,比如processing,或者类似的东西,在更新上次保存的时间之前检查您是否没有处理。 您也可以不使用任何附加变量在savedTime上处理无效值,但我认为使用一个附加变量,一切都会非常清楚
bool processing = false;
int savedTime;
int growTime = 3000;
void setup() {
//Start counting milliseconds
savedTime = millis();
}
void draw() {
if (!processing && arduino.digitalRead(2) == Arduino.HIGH){
//Starts Timer for 'Grow' animation
savedTime = millis();
processing = true;
}
int passedTime = millis() - savedTime;
if (passedTime >= growTime) {
opacity = 10;
if (circleSize > 0){
scale(circleSize);
noStroke();
circleSize -= 0.0009;
} else {
processing = false;
}
}else{
scale(circleSize);
noStroke();
circleSize += 0.0003;
opacity = 70;
}
ellipse(0, 0, circleSize, circleSize);
}
没有尝试代码,所以可能有语法错误。希望有帮助
编辑:我假设在椭圆完全减小之前您不想处理任何其他输入,如果您想在3秒“增长”后处理新输入,您可能需要移动
processing=false代码>我添加的else块之外的语句。谢谢。是的,有一些语法上的改变,但你破解了它。我有一种感觉,它会是那样的,但我是新的,并一直盯着它太久了!再次感谢。