L'evento load viene attivato una sola volta all'inizio del caricamento (NON alla fine), e, per quanto riguarda la visualizzazione della percentuale, hai bisogno di un loop, che tempo per tempo verifichi lo stato del caricamento.
Quindi, concettualmente, la tua è un'impostazione sbagliata.
Prova a utilizzare il setInterval, come qui sotto:
codice:
// nel 1° frame della timeline principale definisco la funzione...
function preload() { 
   car = _root.mc.getBytesLoaded(); 
   tot = _root.mc.getBytesTotal(); 
   perc = parseInt((car*100)/tot) add "%"; 
   // a caricamento completo 
   // il test > 24 serve per evitare il file vuoto
   if (car == tot  &&  car > 24) { 
       clearInterval(a);    // azzero l'intervallo
       _width=487.4; 
       _height=224.4; 
       _x=34.4; 
       _y=94.0; 
	} 
} 
//
//     poi, nel punto in cui fai il caricamento...
//

   _root.mc.loadMovie(_root.foto);
   // avvii il preloader
   a = setInterval(_root.preload, 200);
prova e fammi sapere (non l'ho testato )