09_Sound Board
π» μ£Όμ : μ리 λ²νΌμ λλ₯΄λ©΄ μλ¦¬κ° λμ΄. μλ¦¬κ° λλκΈ° μ μ λ€λ₯Έ μ리 λ²νΌμ λλ₯΄λ©΄ μ μ λλ λ λ²νΌμ μλ¦¬κ° μ€μ§λ¨.
const sounds = ['applause', 'boo', 'gasp', 'tada', 'victory', 'wrong'];
sounds.forEach(sound => {
const btn = document.createElement('button');
btn.classList.add('btn');
btn.innerText = sound;
btn.addEventListener('click', () => {
stopSongs();
document.getElementById(sound).play();
})
document.getElementById('buttons').appendChild(btn);
})
function stopSongs() {
sounds.forEach(sound => {
const song = document.getElementById(sound);
song.pause();
song.currentTime = 0;
})
}
- soundsλΌλ λ°°μ΄μ μ μΈνκ³ , μ¬λ¬ μ€λμ€ νμΌ μ΄λ¦μ ν¬ν¨.
- sounds.forEach(sound => { ... })μ μ¬μ©νμ¬ sounds λ°°μ΄μ κ° μμμ λν΄ λ°λ³΅ μμ
μ μν.
- λ°λ³΅λ¬Έ λ΄λΆμμλ document.createElement('button')μ μ¬μ©νμ¬ λ²νΌ μμλ₯Ό μμ±νκ³ , btn.classList.add('btn')λ₯Ό μ¬μ©νμ¬ 'btn' ν΄λμ€λ₯Ό λ²νΌμ μΆκ°.
- btn.innerText = soundλ₯Ό ν΅ν΄ λ²νΌμ λ΄μ©μ sound μμλ‘ μ€μ . μ¦, κ° λ²νΌμ ν
μ€νΈλ sounds λ°°μ΄μ μμμ λμΌνκ² λλ€.
- btn.addEventListener('click', () => { ... })λ₯Ό μ¬μ©νμ¬ λ²νΌμ ν΄λ¦ μ΄λ²€νΈ νΈλ€λ¬λ₯Ό μΆκ°. μ΄ νΈλ€λ¬μμλ stopSongs() ν¨μλ₯Ό νΈμΆνμ¬ λͺ¨λ μ€λμ€λ₯Ό μ μ§ν λ€μ, ν΄λ¦λ λ²νΌμ ν΄λΉνλ μ€λμ€λ₯Ό μ¬μ. document.getElementById(sound).play()λ₯Ό μ¬μ©νμ¬ ν΄λΉ μ€λμ€ μμλ₯Ό μ°Ύκ³ μ¬μ.
- document.getElementById('buttons').appendChild(btn)λ₯Ό μ¬μ©νμ¬ λ²νΌμ HTML λ¬Έμμ 'buttons'λΌλ μμμ μΆκ°.
- stopSongs() ν¨μλ λͺ¨λ μ€λμ€λ₯Ό μ μ§μν€λ μν . sounds.forEach(sound => { ... })λ₯Ό μ¬μ©νμ¬ sounds λ°°μ΄μ κ° μμμ λν΄ λ°λ³΅ μμ
μ μν. κ° μμμ ν΄λΉνλ μ€λμ€ μμλ₯Ό μ°Ύμ λ€μ, pause() λ©μλλ₯Ό νΈμΆνμ¬ μ¬μμ μΌμ μ μ§νκ³ , currentTime μμ±μ 0μΌλ‘ μ€μ νμ¬ μ€λμ€λ₯Ό μ²μμΌλ‘ λκ°λλ€.