我最近在Phaser3中遇到问题,正在寻找可以帮助我解决问题的人。
我使用按钮来控制静音或打开声音,它在Chrome浏览器中可以运行,但是在Firefox中无法正常工作:如果我将声音静音,则无法再次打开它。这是我的代码:
if (GameApp.Game.sound.mute) {
this.m_volumeBtn.setFrame(this.m_volumeBtn.getData(DATA_KEY_VOLUME_ON));
GameApp.Game.sound.mute = false;
}
else {
this.m_volumeBtn.setFrame(this.m_volumeBtn.getData(DATA_KEY_VOLUME_OFF));
GameApp.Game.sound.mute = true;
}
console.log(GameApp.Game.sound.mute)
无论我单击按钮多少次,控制台始终会打印false
。我想知道我是否错过了一些要点,或者我是否必须使用另一种方法来使它起作用。
p.s。 GameApp.Game.sound.mute
来自BaseSoundManager
,并扩展了Phaser.Events.EventEmitter
。
答案 0 :(得分:0)
我遇到了同样的问题,所以我只使用了一个全局变量来跟踪静音状态:
isMute = !isMute;
game.sound.mute = isMute;
if (isMute === true) {
muteAudioText.setText("SOUND\nOFF");
} else {
muteAudioText.setText("SOUND\nON");
}