2017-12-12 5 views
0

私はJQueryを使用してテキストゲームを構築しています。プレイヤーは様々な部屋を移動して洞窟から脱出します(はい、この洞窟には部屋はありません)。彼らは部屋にナビゲートするためにフォームにコマンドを入力します。ゲームロジックはすべてそこにあり、働いている、私はちょうど彼らが特定の部屋に達するときに歌を再生したいと思います。これまでは、HTMLオーディオタグを使用してクリップを再生することができますが、これはページが読み込まれたときにのみ発生します。jQueryを使って.submit()イベントでオーディオを再生する

.submit()イベント中にオーディオを再生したい場合、関数はどのように見えますか?ここで

は私のHTMLは次のようになります。

<audio id="song" src="Photos/song.mp3"> 
</audio> 

私のJSはあなたのすべてを混乱させずに、ここですべてを投稿する少し長すぎる(私はJSで吸うので、それが反復的だ)が、基本的な要点は私ですcurrentRoom変数を変更し、現在の部屋の内容に基づいてテキストを更新する関数を持っています。このような

const $song = $("#song"); 
function playSong() { 
    if (currentRoom = $r16) { 
    $song.play(); 
    } 
} 
+0

可能性があります[これの複製](https://stackoverflow.com/q/44650634)? – halfer

答えて

0

、wasnだから私は、関数は次のようになります考えていました.submit()関数を動作させることができません。ここで私の変数と関数は次のようになりました。

 // Grab the audio html tag 
     const $song = $("#song"); 
     // Tie the function to a keyup event 
     $(document).keyup(playSong); 
     // Function declaration 
     function playSong() { 
     // Keycode for the enter key 
     const keyCode = 13; 
     // If you hit enter and the current room changes to $r16 
     if (event.which === keyCode && currentRoom === $r16) { 
      // Hit the music 
      $song[0].play(); 
     } 
     } 
0

使用jQueryのsubmit() function::私は.keyup()関数を使用して終了

$("document").ready(function() { 
 

 
    const song = $("#song"); 
 
    let currentRoom = "r16"; 
 

 
    $("#target").submit(function(event) { 
 
    event.preventDefault(); 
 
    if (currentRoom === "r16") { 
 
     song[0].play(); 
 
    } 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<audio id="song" type="audio/mpeg" src="https://sampleswap.org/samples-ghost/LOOPING%20AMBIENCE%20and%20NOISE/555[kb]112_resonant-hum-loop.wav.mp3"> 
 
</audio> 
 
<form id="target" action="something.html"> 
 
    <input type="text" value="Play Song"> 
 
    <input type="submit" value="Submit"> 
 
</form>

関連する問題