0

何が起こっているかというと、いくつかの 1 を何度も繰り返している

グローバル:

var song1 = new Audio("songs/loop1.mp3");
var song2 = new Audio("songs/loop2.mp3");
var song3 = new Audio("songs/loop3.mp3");
var song4 = new Audio("songs/loop4.mp3");
var song5 = new Audio("songs/loop5.mp3");
var song6 = new Audio("songs/loop6.mp3");
var song7 = new Audio("songs/loop7.mp3");
var song8 = new Audio("songs/loop8.mp3");
var song9 = new Audio("songs/loop9.mp3");
var song10 = new Audio("songs/loop10.mp3");
var song11 = new Audio("songs/loop11.mp3");
var songList = [];
var currentSong = 1;

songList.push(song1,song2,song3,song4,song5,song6,song7,song8,song9,song10,song11);

var song = songList[0];

ゲームループの前に私は呼び出します:

song.play();

聞き手: (私はこれが同じ var にとどまり、歌が配列の新しい var を指すように上に移動しないと感じていますか?)

song.addEventListener('ended', NextSong);   

それは呼び出します:

function NextSong()
 {

currentSong++;

if(currentSong > songList.lenght);
{
currentSong = 1;
}

song.play();

}
4

1 に答える 1

1

関数を次のように変更song.play()しますNextSongsongList[currentsong].play()

lenghtにも変更length

関数のコードをよりきれいにすることができます

function nextSong{
    currentSong = (++currentSong)%songList.length;
    songList[currentsong].play();
}

編集

すべての曲のループを開始する必要がある場合。あなたのコードでは、最初のものは一度呼び出され、他のものだけがループしています(0、1、2、...、10、1、2、3...)

于 2013-06-30T05:21:32.373 に答える