我对这个东西很感兴趣,但是当我点击按钮5时,我想连续播放4个音调......
我对数组,Math.random,setInterval有一个基本的了解......但是不能用我的慢脑包围如何制作像这项工作一样简单的东西。 任何指向正确方向的人都会非常感激。
我所拥有的只是使声音单独触发的代码.....
$("document").ready(function() {
$(".button_1").click(function () {
$('#sound-1').get(0).play();
});
$(".button_2").click(function () {
$('#sound-2').get(0).play();
});
$(".button_3").click(function () {
$('#sound-3').get(0).play();
});
$(".button_4").click(function () {
$('#sound-4').get(0).play();
});
$(".button_5").click(function () {
$("????").get(0).play();
});
});
答案 0 :(得分:1)
以下是如何播放单个随机声音。您可以将Math.floor(Math.random() * 4) + 1
用于1到4之间的数字,并执行"#sound-"+randNum
:
$(".button_5").click(function () {
ranNum = Math.floor(Math.random() * 4) + 1;
$("#sound-"+ranNum).get(0).play();
});
要连续播放多首随机歌曲,您可以使用setInterval()
,并跟踪其运行次数,然后在完成时clearInterval()
:
$(".button_5").click(function () {
var plays = 4; // Play 4 sounds, each a second apart.
var timer = setInterval(function(){
ranNum = Math.floor(Math.random() * 4) + 1;
$("#sound-"+ranNum).get(0).play();
plays--;
if(plays < 1) clearInterval(timer);
}, 1000);
});
请注意,它可以重复声音,如果您不想重复,则需要跟踪播放的声音。
最后,您可能需要确保无法再次单击该按钮,直到播放的声音结束。执行此操作的基本方法是disable
按钮,直到间隔结束:
$("#button_5").click(function () {
var plays = 4;
var self = this;
$(self).prop( "disabled", true );
var timer = setInterval(function(){
ranNum = Math.floor(Math.random() * 4) + 1
$("#sound-"+ranNum).get(0).play();
plays--;
if(plays < 1) {
clearInterval(timer);
$(self).prop( "disabled", false );
}
}, 1000);
});
Here is a fiddle example。请注意,在示例中,我只是做console.log("#sound-"+ranNum)
而不是显示会播放的内容。
答案 1 :(得分:0)
你应该有一个播放声音的功能,然后再调用四次。
function playSound(number){
$('#sound-' + number).get(0).play();
}
$(".button_5").click(function () {
var tones = 1;
var t = setInterval(function(){
if(tones>=4) clearInterval(t);
playSound(Math.floor((Math.random() * 4) + 1));
tones++;
}, 1000);
});