Вот простой пример, написанный на коленке, где все работает как надо:

Код AS3:
package
{
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
[SWF(width=640,height=480,backgroundColor=0xffffff,frameRate=60)]
public class Main extends Sprite
{
private var _x:Number = 100;
private var _y:Number = 100;
private var _angle:Number = 0;
private var _container:Sprite;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
if (hasEventListener(Event.ADDED_TO_STAGE))
removeEventListener(Event.ADDED_TO_STAGE, init);
var s:Shape = new Shape();
s.graphics.lineStyle(2, 0x990000);
s.graphics.drawCircle(20, 20, 20);
s.graphics.moveTo(20, 20);
s.graphics.lineTo(40, 20);
s.x = (-s.width / 2) + 1;
s.y = (-s.height / 2) + 1;
_container = new Sprite();
_container.addChild(s);
_container.x = _x;
_container.y = _y;
addChild(_container);
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove);
}
private function mouseMove(e:MouseEvent):void
{
var xl:Number = e.stageX - _container.x;
var yl:Number = e.stageY - _container.y;
_angle = (Math.atan2(yl, xl)) * (180 / Math.PI);
_container.rotation = _angle;
e.updateAfterEvent();
}
}
}