玩家在第一次点击时播放两次

时间:2013-02-27 07:12:50

标签: javascript html html5

我有一段艰难的时间,我有一个代码,你点击一个图像,如果有可能将它移动到下一个单元格,它应该移动

function changecell(a){
    var moved=false;
    if(a%3 !=0) {
      if(ij[a-1]==0) {
         moved=true;
         if(moved==true) {
                no=firstmove++;                 
            move.innerHTML = no;
            playTick();
            }
            swap(a-1,a);
      }
   }

    if((a+1)%3 !=0 && moved==false) {
      if(ij[a+1]==0) {
            moved=true;
         if(moved==true) {
            no=firstmove++;                  
            move.innerHTML = no;
            playTick();
            }
            swap(a+1,a);
      }
   }
}

function playTick() {
    document.getElementById('tickSound').play();
}

function swap(x1,x2) {
    var temp=ij[x1];
   ij[x1]=ij[x2];
   ij[x2]=temp;
   var p = eval("document.images.i"+x1);
   p.src="images1/"+ij[x1]+".png";
   p = eval("document.images.i"+x2);
   p.src="images1/"+ij[x2]+".png";
}

我的问题是首先单击声音播放两次,然后播放一次,因为它应该播放。

有人对此有任何想法吗?

修改

我确实在alert()循环中放了if(moved==true)警报只显示一次,但声音播放两次。假设if(moved==true)再次被执行,我不会得到另一个alert()吗?

1 个答案:

答案 0 :(得分:0)

我认为第一次运行时if条件都满足,因此playTick()方法被调用两次。在不知道a的价值的情况下,我无法确定。