2015-09-04 72 views
0

當我在這個東西總福利局,但我想有一組隨機的4種色調按鈕被點擊5時,連續播放.....喜歡玩色調的隨機序列按鈕被點擊

我有數組,的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至4有可見的模式,因此您可以使用該模式進行編程。 – Popnoodles

+1

根據您提供的信息,唯一可能的答案是用'sound-5'代替'????'。請包含[MCVE](http://stackoverflow.com/help/mcve)。 – baao

回答

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)而不是顯示會發揮什麼。

+0

謝謝你,就像我說我是一個總福利局,但是這讓我在正確的方向前進......再次 –

+0

好,謝謝.....我會當我回家玩它。 –

0

你應該播放的聲音的功能,然後調用的4倍。

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); 
}); 

這裏小提琴http://jsfiddle.net/roanrj6e/

+0

謝謝.....這是我腦海中想的那種,但是我絕對會因爲JS太綠而執行它。 –