package { import flash.display.Sprite; import flash.events.Event; public class Easing3D extends Sprite { private var balls:Array; private var ballNum:Number=20; private var easing:Number=.1; private var fl:Number=250; private var vpX:Number=stage.stageWidth/2; private var vpY:Number=stage.stageHeight/2; public function Easing3D() { init(); } private function init():void { balls=new Array(ballNum); for (var i:int=0; i -fl) { var scale:Number = fl / (fl + b.zpos); b.scaleX=b.scaleY=scale; b.x=vpX+b.xpos*scale; b.y=vpY+b.ypos*scale; b.alpha=scale*0.7+0.3; b.visible=true; } else { b.visible=false; } } //z轴排序 function sortZ():void { balls.sortOn("zpos", Array.DESCENDING | Array.NUMERIC); for (var i:uint = 0; i < ballNum; i++) { var b:Ball3D=balls[i]; setChildIndex(b, i); } } } }