Javascript 不需要的声音循环
这将调用收集器,该收集器运行以下操作:Javascript 不需要的声音循环,javascript,loops,audio,Javascript,Loops,Audio,这将调用收集器,该收集器运行以下操作: setInterval(collector, 1000/FPS); 在inputinterval中,有一段代码确定用户是否正在拖动某些东西。默认情况下,他是,但按空格键会从鼠标指针中删除元素。现在,这将是有趣的声音,所以我做了以下测试的声音: function collector(){ inputinterval(); draw(); soundplay(); //DEBUG FEATURES BELOW //co
setInterval(collector, 1000/FPS);
在inputinterval
中,有一段代码确定用户是否正在拖动某些东西。默认情况下,他是,但按空格键会从鼠标指针中删除元素。现在,这将是有趣的声音,所以我做了以下测试的声音:
function collector(){
inputinterval();
draw();
soundplay();
//DEBUG FEATURES BELOW
//console.log(mousepos);
//console.log(mousedrag);
}
我现在已经把它注释掉了,因为即使没有按下鼠标按钮,它也会循环
鼠标标记在输入函数中确定:
//SOUND
//function soundplay(){
// if (!(mousedrag)){
// snd_putdown.play();
// };
//};
现在被键盘输入取代,因为我的鼠标按钮也不工作。此代码位是在收集器中调用的、由setInterval函数调用的inputinterval()
的一部分。这会造成巨大的循环。我该如何处理声音,使其不属于循环的一部分,但对用户丢弃的东西做出响应(并将其拾起>丢弃>等等)
提前谢谢
编辑:嗯,我现在跳过了整个零件的删除,选择改变设计,而不是因为这样的事情而伤脑筋。我仍然想知道如何做到这一点,但现在它可以没有。在这里可以看到进展,还有来源,还有什么没有:koewaffle.koding.com/pcgametest/index.html。回顾这一点,我的错误真的很愚蠢。然而,作为初学者,我们都会犯这样的错误。要播放,您应该检查当前按键状态是否为“向上”(false),上一个按键状态是否为“向下”(true)。换言之:检查按键,而不是按键事件,因为每一帧它都会检查你的键盘,而你没有按住那个键,它会再次播放声音。。。再一次。。。
if (event.keyCode == 65) {
mousedrag = true;
}
if (event.keyCode == 83) {
mousedrag = false;
}