<script src = "http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script>
$(document).ready(function(){
var secs_time;
var timer2;
var arrayseq1 = [];
var secs_up = 0;
var timer1;
var secs_down = 0;
$("#pad").mousedown(function(){
$(this).css("background-color", "lightgrey");
clearInterval(timer2);
timer1 = setInterval(function(){
secs_down = secs_down + 1;
$("#pad").html(secs_down);
},1);
arrayseq1 = arrayseq1.concat([secs_down]);
}).mouseup(function(){
$(this).css("background-color", "grey");
clearInterval(timer1);
timer2 = setInterval(function(){
secs_up = secs_up + 1;
$("#pad").html(secs_up);
},1);
arrayseq1 = arrayseq1.concat([secs_up]);
});
$("#pad").mouseleave(function(){
clearInterval(timer2);
});
$("#done").click(function(){
arrayseq1.splice(1, 1);
arrayseq1.splice(0, 1);
var counter = 0;
var colors = ["#FF3E96", "#4169E1", "#7FFF00","#FF4500","#FF7F00", "black", "white"];
while(counter <= arrayseq1.length){
setTimeout(function(){
var color = colors[Math.floor(Math.random()*colors.length)];
$("body").css("background-color", color);
}, arrayseq1[counter]);
counter++;
}
});
});
</script>
<div style = "height:500px;width:600px;background-color:grey;border-radius:4px;margin:0 auto;margin-top:10%;" id = "pad"></div>
<input type = "button" id = "done" value = "play">
大家好。
我正在制作一个小程序,当你按下并按下一个巨大的灰色按钮时,它会记录它按下的时间,然后全部放入一个数组(阅读代码以便更好地理解它,不难理解)。无论如何,所以它成功地记录了数组的时间,所以数组&#34; arrayseq1&#34;确实有一个列表,例如[106,144,114,152,122,161,130,311,148,357]。当我尝试循环遍历每个数字时,问题出现了,并将每个数字用作背景闪光的延迟。所以,具体问题是当我替换&#34; arrayseq1 [counter]&#34;在setTimeout函数中。由于某种原因,我不明白,它是未定义的。为什么?我该如何解决这个问题?
在这个jsfiddle中:http://jsfiddle.net/5V4Lv/ 在我将它用于setTimeout函数之前,我提醒值arrayseq1 [counter]该行,正如您将看到的,它会警告&#34; undefined&#34;
因此您可以成功测试,快速随机地点击灰色框,然后当您关闭时,将鼠标移开框以停止录制。然后单击“播放”以开始闪烁。
这样做的最初目的是让背景以完全同步的方式随机闪烁,并拍到你最初点击灰色框的方式。
谢谢!