DenDobriy, советую установить
FlashDevelop. В ней писать намного проще и быстрее. И за одно можно посмотреть как она создает шаблоны классов по умолчанию.
У тебя сейчас в коде полная каша. Как уже заметил ZackMercury, вложенные методы - это плохо (в большинстве случаев).
Вместо этого

Код AS3:
public function MainHiro()
{
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
//
function onAddedToStage(event: Event):void
{
trace(this.x);
var dir:Number = Math.atan2(mouseY-this.y, mouseX-this.x) / Math.PI * 180;
dir += 180;
var speed:Point = new Point(Math.cos(dir/180*Math.PI), Math.sin(dir/180*Math.PI));
stage.addEventListener(MouseEvent.CLICK, fnGetXY);
stage.addEventListener(Event.ENTER_FRAME, enterFrame);
}
}
Нужно написать так:

Код AS3:
public function MainHiro() {
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
private function onAddedToStage(event: Event):void {
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); // не забываем от ненужного отписываться
trace(this.x);
var dir:Number = Math.atan2(mouseY-this.y, mouseX-this.x) / Math.PI * 180;
dir += 180;
var speed:Point = new Point(Math.cos(dir/180*Math.PI), Math.sin(dir/180*Math.PI));
stage.addEventListener(MouseEvent.CLICK, fnGetXY);
stage.addEventListener(Event.ENTER_FRAME, enterFrame);
}
Избавившись от вложенного метода