-1

我的软件有一些问题我正在添加一个帮助声音按钮。

这就像关闭声音

当我点击它时开声

当音频结束时,它变为声音关闭

但是如果我想重播它,我必须点击两次按钮。为什么会这样以及如何纠正它,以便我可以一键重播

HTML

<div id="dummy"></div>
<img src="images/soundoff.png" onClick="sound('helpsound.mp3')" id="snd" />

JAVASCRIPT

 var clickNumber = 2,
 timeoutId = null;

 function sound(soundfile) {
 imagesnd = document.getElementById('snd');

 switch (clickNumber)
 {
  case 1:
        imagesnd.src = "images/soundoff.png";
        document.getElementById("dummy").innerHTML="";
        if (timeoutId !== null) 
        {
           clearTimeout(timeoutId);
           timeoutId = null;
        }
        clickNumber = 2
        return(false);
        break;

  case 2:
        clickNumber = 1;                                                                       
        imagesnd.src = "images/sound.png";

        document.getElementById("dummy").innerHTML="<embed src=\""+soundfile+"\" hidden=\"true\" autostart=\"true\" loop=\"false\"/>";
        timeoutId = setTimeout(function(){
           imagesnd.src = "images/soundoff.png";
           clickNumber = 1;
    },10000);
        clickNumber = 1;
        break;
 }//switch end
 }//function end
4

2 回答 2

0

我明白了,我只是更改了图像而不是这种情况,所以当我第一次单击它时,它转到案例 1(无声音),第二次单击案例 2(声音)

于 2013-11-06T13:43:31.350 回答
0

您的超时持续时间设置为 10 秒。尝试console.log在您的超时处理程序中放置一个,以查看它是否真的被触发并clickNumber在您再次单击图像之前将其重置为 1。

于 2013-11-05T07:17:51.840 回答