il modo di agire non è propriamente corretto, un array non può contenere in se un Object come il MovieClipLoader, al massimo ne può contenere il nome sottoforma di String

nel caso proposto il modo corretto di agire sarebbe
codice:
var listener = new Object();
listener.onLoadStart = function(targ)
{ /* fai qualcosa */ }
listener.onLoadComplete = function(targ)
{/* scala immagine */ };

for (var i = 0; i < photo_count; i++){
	this["image_loader"+i] = new MovieClipLoader();
	this["image_loader"+i].addListener(listener);
	this["image_loader"+i].loadClip(pathFoto(i), iEsimoClip(i));
}
ancora più semplicemente, essendo il MovieClipLoader solo un oggetto che fa le veci del caricamento su di un MovieClip, te ne basta solo uno per tutti i caricamenti, sarà poi il metodo loadClip a decidere come e a chi assegnare il caricamento e le azioni dicharate nel listener

codice:
var listener:Object = new Object();
listener.onLoadStart = function(targ)
{ /* fai qualcosa */ }
listener.onLoadComplete = function(targ)
{/* scala immagine */ };
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(listener);
for (var i = 0; i < photo_count; i++){
	mcl.loadClip(pathFoto(i), iEsimoClip(i));
}