package { import flash.display.Sprite; import flash.events.Event; import flash.geom.*; import flash.display.DisplayObjectContainer; [SWF(backgroundColor="0xffffff", width="800", height="600", frameRate="30")] public class Fishes3D extends Sprite { public var fishes:Vector. = new Vector.(); public function Fishes3D() { init(); } private function init():void { for(var i:int = 0; i < 50; i++){ var fish:Fish3D = new Fish3D(Math.random()*0xFFFFFF); fish.x = stage.stageWidth/2; fish.y = stage.stageHeight/2; fish.xp= Math.random()*stage.stageWidth - stage.stageWidth/2; fish.yp= Math.random()*stage.stageHeight - stage.stageHeight/2; fish.zp= Math.random()*50 + 10; fish.yr = Math.random()*360; addChild(fish); fish.render(); fishes.push(fish); } zSort(root as DisplayObjectContainer,fishes); } private function zSort(container:DisplayObjectContainer,sprites:Vector.):void { sprites = sprites.sort(function(a:Fish3D, b:Fish3D):Number { return b.zp-a.zp; }); sprites.forEach(function(s:*, i:int, a:Vector.):void { container.setChildIndex(s,i); }); } } }