Questa è la stessa cosa ma con una funzione in più "arrange()" che gestisce le profondità a seconda della posizione:
Codice PHP:
var data:Object = {numOfItems:20, radiusX:275, radiusY:80, centerX:int(stage.stageWidth * 0.5), centerY:int(stage.stageHeight * 0.5), speed:0.05};
var items:Array = [];
for (var i:uint=0; i<data.numOfItems; i++) {
items.push(addChild(new Item()) as Item);
items[i].name = "target"+i;
items[i].ang = i * (2 * Math.PI) / data.numOfItems;
items[i].filters = [new GlowFilter(0xFFFF80, 0.5, 8.0, 8.0, 2, 2)];
items[i].addEventListener(Event.ENTER_FRAME, enterframe);
}
function enterframe (evt:Event):void {
var t:Item = evt.target as Item;
t.x = data.radiusX * Math.cos(t.ang) + data.centerX;
t.y = data.radiusY * Math.sin(t.ang) + data.centerY;
t.ang += data.speed;
t.scaleX = t.scaleY = t.y / (data.radiusY + data.centerY);
arrange();
}
function arrange():void {
items.sortOn("y", Array.NUMERIC);
var i:int = items.length;
while(i--){
if (getChildIndex(items[i]) != i) {
setChildIndex(items[i], i);
}
}
}
stage.addEventListener(MouseEvent.MOUSE_MOVE, function (evt:MouseEvent):void { data.speed = (mouseX-data.centerX)/4000; });
Nel mio esempio c'è un clip concatenato come classe Item, in libreria.