А почему, собственно, не так:

Код:
// create a new Sound object
var my_sound:Sound = new Sound();
// if the sound loads, play it; if not, trace failure loading
my_sound.onLoad = function(success:Boolean) {
if (success) {
my_sound.start();
status_txt.text = "Sound loaded";
} else {
status_txt.text = "Sound failed";
}
};
// load the sound
my_sound.loadSound("song1.mp3", true);
Мне кажется, что в твоём коде начинается безконечное обращение между:

Код:
myInterval= setInterval(progressBar, 50, music);
и

Код:
music.onSoundComplete = function(){clearInterval(myInterval);}