guarda questo esempio (ti basta un copia-incolla in un nuovo documento):
codice:
nC = 20;//numero movieclip
aC = new Array();//un array che contiene i movieclip
hEll = 100;//altezza ellissi
wEll = 200;//larghezza ellissi
cEll = {x:550/2, y:200};//centro ellissi
ang = 0;//angolo di rotazione
incAng = 0.01;//incremento angolo di rotazione
//creo dei movieclip e riempio l'array
for (i=0; i<nC; i++) {
this.createEmptyMovieClip("clip"+i, i);
aC.push(this["clip"+i]);
with (this["clip"+i]) {
lineStyle(0, 0x000000, 100);
beginFill(0xCCCCCC, 100);
moveTo(-25, -50);
lineTo(-25, 50);
lineTo(25, 50);
lineTo(25, -50);
endFill();
}
}
this.onEnterFrame = function() {
//posiziono i movieclip e li scalo in base alla posizione y
for (i=0; i<nC; i++) {
this["clip"+i]._x = cEll.x+wEll*Math.cos(2*Math.PI/nC*i+ang);
this["clip"+i]._y = cEll.y+hEll*Math.sin(2*Math.PI/nC*i+ang);
this["clip"+i]._xscale = this["clip"+i]._yscale=this["clip"+i]._y/(cEll.y+hEll.y)*100;
}
//ordino i clip in base alla posizione y
aC.sort(confrontoSuY);
//posiziono i clip alla giusta profondità
for (i=0; i<nC; i++) {
aC[i].swapDepths(i);
}
//incremento l'angolo per la rotazione
ang += incAng;
ang = (ang<Math.PI*2) ? ang : 0;
};
function confrontoSuY(a, b) {
if (a._y>b._y) {
return 1;
} else if (a._y<b._y) {
return -1;
} else {
return 0;
}
}