he adecuado tu precarga.
 
pero no funciona 
lo que hace es cargar los tres mp3 y cuando el primero esta cargado carga el segundo y quando el segundo esta cargado carca el tercero y cuando los tres estan cargados passa al frame 2  
Código:
 stop();
//variables de sonidos
var sonido1 = "musica_somniweb_21.mp3";
var sonido2 = "musica_somniweb_22.mp3";
var sonido3 = "musica_somniweb_23.mp3";
this.txt_carga.text = "Cargando musica";
//precarga
function carga1 (){
this.createEmptyMovieClip("mcLoader1",100); //crear un mc vacío en el depth 100 
mcLoader1.onEnterFrame=function(){
  cargado1=Asonido1.getBytesLoaded();
  total1=Asonido1.getBytesTotal();
  if(cargado1>=total1) {
    carga2
    _root.txt_carga1.text = sonido1 add " Cargado correctamente";
	delete mcLoader1.onEnterFrame;
  } else {
    _root.txt_carga1.text = "Cargando" add sonido1 add " " add cargado1 add " de " add total1; 
  }
}
}
function carga2 (){
this.createEmptyMovieClip("mcLoader2",100); //crear un mc vacío en el depth 100 
mcLoader2.onEnterFrame=function(){
  cargado2=Asonido2.getBytesLoaded();
  total2=Asonido1.getBytesTotal();
  if(cargado2>=total2) {
    carga3
    _root.txt_carga2.text = sonido1 add " Cargado correctamente";
	delete mcLoader2.onEnterFrame;
  } else {
    _root.txt_carga2.text = "Cargando" add sonido2 add " " add cargado2 add " de " add total2; 
  }
}
}
function carga3(){
this.createEmptyMovieClip("mcLoader3",100); //crear un mc vacío en el depth 100 
mcLoader3.onEnterFrame=function(){
  cargado3=Asonido3.getBytesLoaded();
  total3=Asonido3.getBytesTotal();
  if(cargado3>=total3) {
    _root.txt_carga3.text = sonido3 add " Cargado correctamente";
	delete mcLoader3.onEnterFrame;
	gotoAndStop(2);
  } else {
    _root.txt_carga3.text = "Cargando" add sonido3 add " " add cargado3 add " de " add total3; 
  }
}
}
  pero no funciona 
ya no se como hacerlo 
gracias