Здравствуйте.
Необходимо реализовать реалистичное вращение круга мышью, причем так, чтобы "тугость" (скорость) этого вращения можно было регулировать, и чтобы вращение происходило в направлении движения мыши.
Вот код который есть сейчас, но он не позволяет регулировать скорость, да и вращение происходит слишком резко

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.geom.Matrix;
public class Spinner extends Sprite
{
static public const STAGE_WIDTH:int = 800;
static public const STAGE_HEIGHT:int = 600;
private var $mover:Sprite;
private var $lastX:Number;
private var $lastY:Number;
public function Spinner()
{
$mover = new Sprite();
var mx:Matrix = new Matrix();
mx.createGradientBox(STAGE_HEIGHT / 2, STAGE_HEIGHT / 2, Math.PI / 2);
$mover.graphics.beginGradientFill('linear', [0xFF0000, 0x0000FF], [1, 1], [0, 255], mx);
$mover.graphics.drawCircle(0, 0, STAGE_HEIGHT / 2);
$mover.graphics.endFill();
$mover.x = STAGE_WIDTH / 2;
$mover.y = STAGE_HEIGHT / 2;
this.addChild($mover);
this.addEventListener(Event.ADDED_TO_STAGE, thisAddedToStageHandler);
}
private function thisAddedToStageHandler(e:Event):void
{
this.removeEventListener(Event.ADDED_TO_STAGE, thisAddedToStageHandler);
stage.addEventListener(MouseEvent.MOUSE_DOWN, moverMouseDownHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, moverMouseUpHandler);
}
private function moverMouseDownHandler(e:MouseEvent):void
{
$mover.addEventListener(MouseEvent.MOUSE_MOVE, moverMouseMoveHandler);
}
private function moverMouseUpHandler(e:MouseEvent):void
{
$mover.removeEventListener(MouseEvent.MOUSE_MOVE, moverMouseMoveHandler);
}
private function moverMouseMoveHandler(e:MouseEvent):void
{
var thisX:Number = stage.mouseX - $mover.x;
var thisY:Number = stage.mouseY - $mover.y;
$mover.rotation = Math.atan2($lastY - thisY, $lastX - thisX) * 180 / Math.PI;
$lastX = thisX;
$lastY = thisY;
}
}
}
Подскажите что нужно добавить.