У меня нет Flash IDE чтобы создать там fla, но если я ничего не упустил, то код в кадре будет примерно таким:

Код AS3:
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
var _offset:Number = 0;
var _rotationValue:Number = 0;
var _sprite:Sprite = new Sprite(); // это ваш объект, который нужно поворачивать
_sprite.x = 150;
_sprite.y = 150;
addChild(_sprite);
_sprite.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
function mouseDown(e:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMove);
stage.addEventListener(MouseEvent.MOUSE_UP, stage_middleMouseUp);
var dx:Number = e.stageX - _sprite.x;
var dy:Number = e.stageY - _sprite.y;
_offset = diffAngles((Math.atan2(dy, dx) * 180 / Math.PI), _sprite.rotation, false);
}
function stage_middleMouseUp(e:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMove);
stage.removeEventListener(MouseEvent.MOUSE_UP, stage_middleMouseUp);
}
function stage_mouseMove(e:MouseEvent):void
{
var oldAng:Number = _sprite.rotation;
var dx:Number = e.stageX - _sprite.x;
var dy:Number = e.stageY - _sprite.y;
_sprite.rotation = (Math.atan2(dy, dx) * 180 / Math.PI) + _offset;
_rotationValue += diffAngles(oldAng, _sprite.rotation, false);
trace("-----------------------");
trace("кол-во полных оборотов", int(_rotationValue / 360));
trace("текущий поворот", int(_rotationValue % 360));
}
function diffAngles(ang1:Number, ang2:Number, inRadian:Boolean = true):Number
{
var diff:Number;
if (inRadian)
{
//convert to 0 - Math.PI*2
// 3.141592653589793 = Math.PI;
// 6.283185307179586 = Math.PI*2;
if (ang1 < 0)
ang1 = 6.283185307179586 - (ang1 * -1); //to abs
if (ang2 < 0)
ang2 = 6.283185307179586 - (ang2 * -1); //to abs
diff = ang2 - ang1;
if (diff > 3.141592653589793)
diff -= 6.283185307179586;
else if (diff < -3.141592653589793)
diff += 6.283185307179586;
}
else
{
//convert to 0-360
if (ang1 < 0)
ang1 = 360 - (ang1 * -1); //to abs
if (ang2 < 0)
ang2 = 360 - (ang2 * -1); //to abs
diff = ang2 - ang1;
if (diff > 180)
diff -= 360;
if (diff < -180)
diff += 360;
}
return diff;
}