package { import flash.display.Sprite; import flash.events.Event; import flash.display.Bitmap; import com.blitzagency.xray.inspector.Xray; [SWF(backgroundColor="0xffffff", width="800", height="600", frameRate="30")] public class Carousel2 extends Sprite { private var radius:Number = 200; private var angle:Number = 0; private var rot:Number = 0; private var speed:Number = 0.05; private var container:Sprite; private var numFishes:int = 5; private var fishes:Array = []; public var xray:Xray; public function Carousel2() { xray = new Xray(); addChild(xray); //add (container) container = new Sprite(); container.x = stage.stageWidth/2; container.y = stage.stageHeight/2; addChild(container); //add child sprites (images) for(var i:int = 0; i < numFishes; i++){ var fish:Fish = new Fish(Math.random()*0xFFFFF); var angle = i*(360/numFishes); fish.rotationY = 90-angle; var rads:Number = angle*Math.PI/180; fish.x = radius*Math.cos(rads); fish.z = radius*Math.sin(rads); container.addChild(fish); fishes.push(fish as Sprite); } addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(event:Event):void { revolve(); zSort(); } private function revolve():void { rot--; for(var i:int = 0; i < numFishes; i++){ var fish:Fish = fishes[i]; var angle = (rot + i*(360/numFishes))%360; fish.rotationY = 90-angle; var rads:Number = angle*Math.PI/180; fish.x = radius*Math.cos(rads); fish.z = radius*Math.sin(rads); } } private function zSort():void { var sprites:Array = fishes.slice(); sprites.sortOn("z", Array.DESCENDING); sprites.forEach(function(s:*, i:int, a:Array):void { container.addChild(s); }); } } } // Copyright (c) 2008 David Wilhelm // MIT license: http://www.opensource.org/licenses/mit-license.php