当播放整个播放站点时,循环在结束时停止,但它不会重新启动并将currentSong设置为1?我的数组中有8首歌曲,它循环播放每首歌曲,当它们结束时,它们调用NextSong,但当播放最后一首歌曲时,什么都不会发生。
function NextSong()
{
alert("next song");
document.removeEventListener('ended',NextSong);
if(rewindClicked ==true)
{
currentSong--;
}
else
{
currentSong++;
}
if(currentSong > songList.length)
{
currentSong = 1;
}
if(currentSong < 1)
{
currentSong = songList.length;
}
songList[currentSong].play();
rewindClicked = false;
//song.addEventListener('ended', NextSong);
songList[currentSong].addEventListener('ended', NextSong);
}发布于 2013-06-30 15:34:46
数组索引从0开始。
if(currentSong > songList.length)
{
currentSong = 1;
}
songList[currentSong].play();这部分允许currentSong恰好是数组的长度,这意味着songList[currentSong]试图访问超出界限的元素,您可能会在JavaScript error console中看到这种情况。换句话说,如果数组中有8首歌曲,songList[ 7 ]就是最后一首。
将条件更改为:
if(currentSong >= songList.length)类似地,您可能想要更改
if(currentSong < 1)
{
currentSong = songList.length;
}至
if(currentSong < 0)
{
currentSong = songList.length - 1;
}https://stackoverflow.com/questions/17388156
复制相似问题