El problema es que no se están creando cada vez que ocurre tu loop. Sino que probablemente los nuevos MC están ocupando el espacio de los que habías creado antes.
No estoy seguro que sea la mejor alternativa, pero por que no intentas mantener una variable con el ultimo valor de "largo", para que luego hagas algo como esto... (asumiendo que el "level" al que los colocas sea el mismo numero de tu loop)
Código:
function llenaMCs() {
if(largo>0) {
for(i=0;i<=largo;i++) {
miMCbase.attachMovie("miClip","clip" + i,i);
}
}
if(oldlargo>largo) {
for(i=largo+1;i<=oldlargo;i++) {
sobrante = miMCbase.getInstanceAtDepth(i);
sobrante.removeMovieClip();
}
}
oldlargo = largo;
}
Tal vez no sea la forma más eficiente de hacerlo (seguramente no, porque ando medio oxidado en Actionscript
) y tal vez el ejemplo requiera algunas correcciones antes de funcionar, pero al menos te servirá como un punto de partida.
Saludos!