Preloader Issues - Deadline looming, please help

I am trying to preload an mp3 file dynamically while showing the typical ‘percentage loaded’ in a dynamic text box. However for some reason, the percentage just doesn’t count up - it freezes on 100% even though the mp3 file is still loading. I’m sure there is a simple fix but I just can’t figure this one out and any help would be greatly appreciated. I have included the code that I’m using below. Also, does anyone know what would be the best way to adjust this code so that I could preload multiple mp3 files at the same time or one after another?

bgMusic = new Sound();
bgMusic.loadSound("Music/song1.mp3", false);
//start mp3 download 
createEmptyMovieClip("loadprogress", 1);
function showLoadProgress() {
if (_root.bgMusic.getBytesTotal()>0) {
// calculate size of mp3 in kilobytes
var kilobytes = Math.ceil(_root.bgMusic.getBytesTotal()/1024);
// calculate percent loaded
var percentLoaded = Math.ceil((_root.bgMusic.getBytesLoaded()/_root.bgMusic.getBytesTotal())*100);
// show loading message
_root.percentOutput02 = "Audio Loading: "+percentLoaded+"% of "+kilobytes+"k";
if (percentLoaded == 100) {
loaded = true;
// terminate loop
_root.percentOutput02 = "Audio Ready";
}
}
// end loop
if (percentLoaded>=100) {
loadprogress.removeMovieClip();
}
}
loadprogress.onEnterFrame = showLoadProgress;
// start loop

Many Thanks