2014-10-02 28 views
1

我已經成功添加onclick音頻效果到我的clickcounter圖像,但我想知道,有什麼辦法可以隨機選擇聲音,而不是一個聲音?當我點擊我的圖像時,圖像被點擊的次數出現,聲音播放,但我希望它在每次點擊時播放不同的(隨機)音頻文件(來自我的選擇)隨機選擇音頻文件(onclick效果)

這些腳本我有我的按鈕到目前爲止

的Javascript

function clickCounter(){ 
    var audio = document.getElementById("audio"); 
    audio.play(); 
    if(typeof(Storage)!=="undefined"){ 
     if (localStorage.clickcount) 
     { 
      localStorage.clickcount=Number(localStorage.clickcount)+1; 
     } 
     else 
     { 
      localStorage.clickcount=1; 
     } 
     document.getElementById("result").innerHTML="<center><b>You have clicked the poop 
     </b>"+ localStorage.clickcount + "<b> times!</b></center>"; 
    } 
    else{ 
     document.getElementById("result").innerHTML="I'm sorry to inform you that your browser 
     does not support this web storage... I guess you could say that your browser is... 
     shit! awwww yeaahh!"; 
    } 
    cursor: pointer; 
} 

HTML

<center> 
    <font face="chiller" color="#603913" "font size="300" <align="center"><b>Click the 
    poop!</b> 
</center> 
<center> 
    <p><picture onclick="clickCounter()"><picture 
    onmouseover="document.getElementById('touch').play()"><img src="poop.png"></button></p> 
</center> 
<audio id="audio" src="fart-01.wav"></audio> 
<audio id="touch" src="sticky goo.wav"></audio> 
<div id="result"></div> 

我該如何編寫腳本?我知道我必須將它與我當前的onclick函數交織在一起,並且我必須創建一個表,也許使用tr或td標記。有人能幫助我嗎?我無法讓它工作。

感謝所有提前!

+0

是什麼讓你覺得你需要添加一個表? (我問,因爲我認爲我誤解了你的部分問題。) – dcorking 2014-10-02 09:04:17

+0

我的IT老師說可以這樣工作。作爲我自己的一部分,對於整個腳本非常困惑 – 2014-10-02 09:15:16

+0

作爲理解腳本的一般策略,嘗試刪除和簡化不理解的部分,並查看您認爲自己理解的部分是否仍然有效。如果你不是自己寫劇本,而是給它做家庭作業,那麼你應該向我們解釋一下:它讓你更容易幫助你(如果可以的話)。 – dcorking 2014-10-02 09:34:15

回答

1

你可以使用這個開關盒。

你產生具有例如

var number = Math.floor((Math.random() * 3) + 1); 

則可以使用開關殼體以選擇你的與隨機數generete N個可能性之一隨機聲的隨機數。

功能setSound(){

switch (number) { 
    case 1: 
     setSound1; 
     return sound; 
     break 
    case 2: 
     setSound2; 
     return sound; 
     break 
    case 3: 
     setSound3; 
     return sound; 
     break 
    } 
} 

然後returnd值要播放的聲音添加到您的代碼。

在這種情況下,您需要從swtich case中返回您隨機選擇的聲音文件的名稱。

+0

我理解這個概念,它很棒!但我不確定如何將其編入我已有的內容。我是否在setSound1之後編寫我的src?或者我使用document.GetElementById(「my_audio_file」)? 什麼是回報聲音?我需要什麼? 對不起,我不熟悉腳本 – 2014-10-02 09:17:34

+0

你可以設置一個文件名(setSound1),然後返回聲音的名稱,並在src =「soundName」中使用它就像一個變量。或者你可以使用'document.getElementById('yourAudioTag')。play()'。也許這個鏈接可能會有所幫助http://www.storiesinflight.com/html5/audio.html – 2014-10-02 09:28:04

+0

你可能在jsfiddle中做到這一點?或者也許給我發一封帶有html文件的郵件,裏面包含你所擁有的東西? 我的電子郵件是[email protected]。 感謝您的幫助! :) – 2014-10-02 10:13:07