Проблема в переменных
mousePositionX и
mousePositionY. Вот набросал рабочий пример.

Код AS3:
package
{
import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
/**
* ...
* @author bav
*/
[Frame(factoryClass="Preloader")]
public class Main extends Sprite
{
private var hero:Sprite;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
hero = new Sprite();
var g:Graphics = hero.graphics;
g.lineStyle(1);
g.beginFill(0xFFFF00);
g.moveTo( -10, -10);
g.lineTo(10, 0);
g.lineTo(-10, 10);
g.lineTo( -10, -10);
g.endFill();
hero.x = stage.stageWidth / 2;
hero.y = stage.stageHeight / 2;
addChild(hero);
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
}
private function mouseMoveHandler(e:MouseEvent):void
{
var dx:Number = e.stageX - hero.x;
var dy:Number = e.stageY - hero.y;
hero.rotation = Math.atan2(dy, dx) * 180 / Math.PI;
var g:Graphics = this.graphics;
g.clear();
g.lineStyle(2, 0xFF0000);
g.moveTo(hero.x, hero.y);
g.lineTo(e.stageX, e.stageY);
}
}
}