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 に答える