0

我正在创建一个游戏,当开始屏幕出现时,开始播放一些音乐。现在我还在开始屏幕中添加了一个复选框。选中此复选框时,如果未选中,则应听到音乐,不应播放音乐。

我有以下代码:

// 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');
    }); 
});

如何解决这个问题?

亲切的问候,

莫里斯

4

1 回答 1

1
$("#music").on('change', function() {
    if (this.checked) {
        music.play();
        music.loop();
    }else{
        music.stop();
    }
});
于 2012-08-05T00:23:20.880 回答