Показать сообщение отдельно
Старый 12.03.2015, 10:02
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
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);
 
 
}
Избавившись от вложенного метода