for(var i:uint=0; i<numBalls; i++){ var ball:Ball=new Ball(Math.random()*30+20,Math.random()*0xffffff);
ball.x=Math.random()*stage.stageWidth;
ball.y=Math.random()*stage.stageHeight;
ball.vx=Math.random()*6-3;
ball.vy=Math.random()*6-3;
addChild(ball);
balls.push(ball); }
addEventListener(Event.ENTER_FRAME,onEnterFrame); } privatefunctiononEnterFrame(event:Event):void{ for(var i:uint=0; i<numBalls-1; i++){ var ball0:Ball=balls[i]; for(var j:uint=i+1; j<numBalls; j++){ var ball1:Ball=balls[j]; var dx:Number=ball1.x-ball0.x; var dy:Number=ball1.y-ball0.y; var dist:Number=Math.sqrt(dx*dx+dy*dy); var minDist:Number=ball0.radius+ball1.radius; if(dist<minDist){ var angle:Number=Math.atan2(dy,dx); var tx:Number=ball0.x+Math.cos(angle)*minDist; var ty:Number=ball0.y+Math.sin(angle)*minDist; var ax:Number=(tx-ball1.x)*spring; var ay:Number=(ty-ball1.y)*spring;
ball0.vx-=ax;
ball0.vy-=ay;