Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用另一个函数中的路径运行Audio.play,就像它们在同一个函数中一样快?_Javascript_Audio_Avaudioplayer - Fatal编程技术网

Javascript 如何使用另一个函数中的路径运行Audio.play,就像它们在同一个函数中一样快?

Javascript 如何使用另一个函数中的路径运行Audio.play,就像它们在同一个函数中一样快?,javascript,audio,avaudioplayer,Javascript,Audio,Avaudioplayer,我正在尝试制作一个类似“饼干点击器”的游戏,每次点击后我都需要播放一个声音。我的问题是新音频和Audio.play在两个单独的函数中(带有全局变量),这会导致从单击到声音的延迟 有没有办法消除延迟,而不将它们移动到相同的功能 这里是定义音频的地方: [].forEach.call(document.getElementById('skins').children, function(e) { e.onclick = function () { klikketskin = this.id;

我正在尝试制作一个类似“饼干点击器”的游戏,每次点击后我都需要播放一个声音。我的问题是新音频和Audio.play在两个单独的函数中(带有全局变量),这会导致从单击到声音的延迟

有没有办法消除延迟,而不将它们移动到相同的功能

这里是定义音频的地方:

[].forEach.call(document.getElementById('skins').children, function(e) {
e.onclick = function () {
  klikketskin = this.id;
  clicklyd = new Audio(`Medier/Lyd/Clicker/${klikketskin}.mp3`); }
下面是它的播放位置(稍后在脚本中):

现在的状态(打开声音):

我想要的(打开声音):

坦克你!:D

在再次调用
play()
之前,您应该将
currentTime
属性重置回
0
,这将让声音从一开始就重放

function clickevent() {
  clicklyd.currentTime = 0;
  clicklyd.play(); 
}
然而,如果之前的声音还没有结束,这将切断它

function clickevent() {
  clicklyd.currentTime = 0;
  clicklyd.play(); 
}