package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; public class Spring3D extends Sprite { private var balls:Array; private var ballNum:Number=20; private var spring:Number=.1; private var friction:Number=.94; private var fl:Number=250; private var vpX:Number=stage.stageWidth/2; private var vpY:Number=stage.stageHeight/2; var temp:Number = 0; public function Spring3D() { init(); } private function init():void { balls=new Array(ballNum); for (var i:int=0; i=250){ reset(); temp=0; } //trace(temp); } function move(b:Ball3D):void { var dx:Number=b.tx-b.xpos; var dy:Number=b.ty-b.ypos; var dz:Number=b.tz-b.zpos; b.vx+=dx*spring; b.vy+=dy*spring; b.vz+=dz*spring; b.xpos+=b.vx; b.ypos+=b.vy; b.zpos+=b.vz; b.vx*=friction; b.vy*=friction; b.vz*=friction; if (b.zpos>- 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.8+0.2; b.visible=true; } else { b.visible=false; } } private function reset():void { for (var i:int=0; i