И я бы в таком виде не оставил, тем более для игры. Методы Point они хорошие, но вот если бы они ещё были inline,
то было бы вообще здорово, так как в играх же, каждый кадр пересчитываются координаты и методы поинта медленней чем рукотворная математика.

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.geom.Point;
public class CirclePoint extends Sprite
{
public function CirclePoint()
{
stage.addEventListener(MouseEvent.MOUSE_DOWN, stage_mouseDownHandler);
}
private function stage_mouseDownHandler(event:MouseEvent):void
{
if (this.numChildren) this.removeChildren();
var A:Point = this.drawPoint(this.coords());
var B:Point = this.drawPoint(this.coords());
var radius:Number = Math.sqrt(Math.pow((B.x - A.x), 2) + Math.pow((B.y - A.y), 2)) / 2;
var center:Point = new Point((A.x + B.x) / 2, (A.y + B.y) / 2);
this.drawPoint(center);
this.drawCircle(center, radius);
}
private function drawCircle(center:Point, radius:Number):void
{
var circle:Sprite = new Sprite();
circle.graphics.lineStyle(1, 0xffffff);
circle.graphics.drawCircle(center.x, center.y, radius);
circle.graphics.endFill();
this.addChild(circle);
}
private function coords():Point
{
var pX:int = Math.round(Math.random() * stage.stageWidth);
var pY:int = Math.round(Math.random() * stage.stageHeight);
return new Point(pX, pY);
}
private function drawPoint(p:Point):Point
{
var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xffffff);
circle.graphics.drawCircle(0, 0, 5);
circle.graphics.endFill();
circle.x = p.x;
circle.y = p.y;
this.addChild(circle);
return p;
}
}
}