编辑(更具体):
我有以下情况。我正在用JavaScript构建一个实验性的合成器接口。我正在使用howler.js插件来处理音频。
其思想是在满足一定条件时播放声音。我有一个数字存储变量,其值通过iPhone指南针的方向变化。
我使用compass.js。它有一个叫做heading的变量。

$(function(){

    Compass.watch(function (heading) {
      $('.degrees').text(Math.floor(heading) + '°');
      $('#rotate').css('-webkit-transform', 'rotate(' + (-heading) + 'deg)');

       if (heading >= 10 && heading <= 30) {
       sound.play("myFirstSound");
       }
       else if (heading >= 31 && heading <= 60) {
       sound.play("mySecondSound");
       } else { etc etc...
       });
});

即使标题是恒定的,.play命令不是一次而是一次又一次地执行,这会导致音频引擎内存不足。如何在if循环中只执行一次命令?我无法访问指南针功能之外的航向值。我总是得到var标题不存在错误。

最佳答案

只需使用一个布尔变量。

var alreadyPlayed = false;

for(somecondition){
   if(alreadyPlayed) continue;

   sound.play("myFirstSound");
   alreadyPlayed = true;
}

你明白了。

关于javascript - 如何在if循环中仅执行一次内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28813349/

10-13 00:15
查看更多