prova a spostare la tua funzione dall'AS associato al movieclip all' AS sul frame sulla timeline:
codice:
function preload(nome) {
trace(nome);
}
e aggiungi subito dopo una cosa del genere:
codice:
for (i=0; i<n; i++) {
duplicateMovieClip(_root.mc, "mc"+i, i);
this["mc"+i]._x = this.mc._x+(72*i);
this["mc"+i].clip_foto.loadMovie("foto"+i+".jpg");
//sull'EnterFrame del movieclip richiamiamo la funzione passandogli un valore, in questo caso il nome del movieclip appena creato
this["mc"+i].onEnterFrame = function() {
//utilizzo la variabile "caricato"+i per verificare se non ho già caricato la funzione per quel movieclip
if (!this["caricato_"+i]) {
//chiamo la funzione passandogli un parametro (il nome)
_root.preload(this._name);
//setto la variabile = true in modo da non ripetere il caricamento della funzione
this["caricato_"+i] = true;
}
//una volta caricata la funzione libero un po' di memoria cancellando l'onEnterFrame associato
delete this["mc"+i].onEnterFrame();
};
}
Spero ti possa essere d'aiuto.