我正在为我的游戏创建声音库,我正努力让它尽可能干净灵活。我的最终目标是能够定义一个变量(如下面的代码所示)并以这种方式调用sound1.play()
或sound1.mute()
等,就像音频对象一样。我该怎么做呢?我的想法是,如果我将变量名称传递给函数(例如,sound1)并将其分配给音频对象,那么理论上它就可以工作。
var sound1 = new brazen({
source:[
['audio/hit1.mp3'], // mp3
],
})
虽然,我尝试过,传递变量名称,但我仍然无法通过sound1.play()
调用它。
这项工作
this.newSound = new Audio(soundName); // sound1.newSound is now an audio object
this.newSound.play(); // sound1.newSound.play() plays the sound
我想要什么
this = new Audio(soundName); // sound1 is now an audio object
this.play(); // sound1.play() plays the sound
如何实现目标?显然,“我想要的东西”不起作用,因为您无法将音频位分配给此。我想为声明为“new brazen()”
的任何变量动态实现这一点理想情况下,只有javascript解决方案,因为我希望这个库是独立的,但如果它是唯一的解决方案,我会接受Jquery。
答案 0 :(得分:0)
找到解决方案
我之前没有尝试过这种感觉很傻,但下面给出了我想要的结果。这很愚蠢。
s = new Audio(soundName); // sound1 is now an audio object
return s; // Var sound1 = audio object and assumes properties of HTML audio object, including .play();