问题描述
我正在尝试制作一个像游戏一样的“ 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();
}
但是,如果尚未结束,则会切断前一个声音。