编辑(更具体):
我有以下情况。我正在用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/