2012-06-14 2 views
0

버튼을 클릭하여 오디오 파일을 재생 한 다음 다시 클릭하면 내 배열에서 다음 파일을 재생하려고하는 버튼을 만들려고합니다. 나는 그것을 연주하게하지만 두 번째로 그것을 클릭하면 첫 번째 파일과 두 번째 파일이 재생됩니다. 세 번째로 누르면 첫 번째, 두 번째 및 세 번째 재생됩니다. 페이지의 처음 두 트랙을 지우려면 뭔가를 재설정해야하는 것처럼 보입니다. 당신은 지속적으로 결코 그들 중 하나를 제거하지, 더 많은 <embed> 요소를 추가자바 스크립트 배열에서 오디오 파일을 재생할 때 문제가 발생했습니다.

<!DOCTYPE HTML> 
    <html> 
    <head> 
    </head> 
    <body> 

    <script language="javascript" type="text/javascript"> 

     audio = new Array('audio1.mp3','audio2.mp3','audio3.mp3'); 
     index = 0; 

     function playSound() { 
     if(index<3){ 
     document.getElementById("start").innerHTML=document.getElementById("start").innerHTML + 
     "<embed src=\""+audio[index]+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />"; 
     index++; 
     } 
     else{ index = 0; 
     document.getElementById("start").innerHTML=document.getElementById("start").innerHTML + 
     "<embed src=\""+audio[index]+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />"; 
     index++; 
     } 



    } 

    </script> 

       <button id="start" type = "button" onclick="playSound();">Start</button> 

    </body> 

</html> 

답변

1
function playSound() { 
    if(index>=3){ 
     index = 0; 
    } 
    document.getElementById("sound").innerHTML= 
    "<embed src=\""+audio[index]+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />"; 
    index++; 
} 

그리고 (유 CSS로도 숨길 수) 사업부를 추가, 나는 그 버튼에 HTML을 추가하는 것보다 더 좋은 방법이라고 생각.

<button id="start" type = "button" onclick="playSound();">Start</button> 
<div id="sound" style="display:none"></div> 
+0

답변을 수락하는 방법, 미안, 아직 배우고 있습니다! 나는 당신의 대답을 시도하고 동시에 여러 파일을 재생하는 문제를 해결했지만 버튼 자체는 텍스트를 잃어 버렸고 크기는 반으로 줄어 들었습니다. 답변 해 주셔서 감사합니다. 감사합니다. –

+0

아, 버튼에 숨겨진 소스 요소를 추가했기 때문입니다. 나는 그것을 해결하기 위해 내 대답을 편집 할 것입니다. 내 대답의 왼쪽에있는 V자를 눌러 내 대답을 수락 할 수 있습니다. – Anonymous

+0

OK 정보를 제공해 주셔서 감사합니다. div를 생성하고 대신 div에 추가했습니다. 그것은 버튼을 바꾸지 않았지만 그냥 내려 놓았습니다. 나는 div를 더 잘 숨기는 방법을 찾아야한다고 생각합니다. 그래도 더 좋은 방법이 있어야합니다. 나는 계속 노력할 것이다! 다시 한 번 감사드립니다! –

1

: 여기에 내가 가진 것입니다.

단추에 추가하는 대신 다른 단추를 추가하기 전에 단추를 컨테이너에 추가 한 다음 제거하십시오.

+0

축하합니다. 34,343! – Ryan

+0

나는 이것을 시도했지만 혼란에 빠졌다. 당신이 짐작할 수 있듯이 저는 아직 자바 스크립트에서 초보자입니다. 삽입 된 요소는 어떻게 제거합니까? 나는 이것을 발견했다 : element = document.getElementById ("element-id"); 그러나 작동하지 않았다. 나는 당신이 embeded 요소에 id를 추가해야만한다고 생각했지만 그것이 틀렸다는 생각이 들었습니다. 나는 내가 haha를 알고 있다는 것을 배울 것이 많이있다. 당신의 도움을 주셔서 감사합니다. element.parentNode.removeChild (element); –

관련 문제