我正在创建一个游戏,当出现开始屏幕时,一些音乐开始播放。现在我还在开始屏幕中添加了一个复选框。选中此复选框后,如果未选中则应听到音乐,不应播放音乐。
我有以下代码:
// Show the start screen and play some music.
game.start(game.DEMO_MODE);
if (document.getElementById('music').checked){ //check if checkbox is checked
music.play();
music.loop(); //Loop the music
}
如果选中该复选框,此代码将检查游戏负载,如果是,则播放音乐。这种方法效果很好,但只有在游戏加载时才有效。如果选中此复选框并且某人在开始屏幕中取消选中,则音乐将继续播放。除非他重新加载游戏,否则声音会静音。
显然我不想要这个。取消选中复选框时应停止声音,反之亦然。
我认为这个问题可以通过使用jQuery的.bind('change',function(){
来解决,但我没有成功。我希望有人知道需要添加什么...
复选框的代码(它还将已检查/未检查的状态存储到cookie或本地存储中):
jQuery(function($) {
// Aa key must is used for the cookie/storage
var storedData = getStorage('com_test_checkboxes_');
$('div#musiccheck input:checkbox').bind('change',function(){
// do something here tho mute or unmute the sound??
// save the data on change
storedData.set(this.id, $(this).is(':checked')?'checked':'not');
}).each(function() {
// on load, set the value to what we read from storage:
var val = storedData.get(this.id);
if (val == 'checked') $(this).attr('checked', 'checked');
if (val == 'not') $(this).removeAttr('checked');
if (val) $(this).trigger('change');
});
});
如何解决这个问题?
亲切的问候,
莫里斯
答案 0 :(得分:1)
$("#music").on('change', function() {
if (this.checked) {
music.play();
music.loop();
}else{
music.stop();
}
});