我正在尝试制作一个像游戏一样的“cookie Clicker”,每次单击Clicker时都需要播放声音。我的问题是,新的Audio和audio.play在两个单独的函数中(具有全局变量),这导致从单击到声音的延迟。
有什么方法可以消除延迟,而无需将其移至同一功能?
这是定义音频的地方:
[].forEach.call(document.getElementById('skins').children, function(e) {
e.onclick = function () {
klikketskin = this.id;
clicklyd = new Audio(`Medier/Lyd/Clicker/${klikketskin}.mp3`); }
播放的位置(脚本的后面):function clickevent() {
clicklyd.play(); }
现在如何(打开声音):https://imgur.com/a/2vf4NWG
我想要的(打开声音):
https://imgur.com/a/x4wYFq2
保护你! :D
最佳答案
您应该将currentTime
属性重置回0
,这将使声音从头开始重放,然后再次调用play()
。
function clickevent() {
clicklyd.currentTime = 0;
clicklyd.play();
}
但是,如果尚未结束,则会切断前一个声音。
关于javascript - 我如何以另一个函数的路径运行Audio.play,就像它们在同一个函数中一样快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64360446/