Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 13.02.2015, 05:20
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 1  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
По умолчанию Как найти слушателя?

В отрывке кода я создаю новый экземпляр класса, отправляю необходимые данные и создаю слушателя события. Нужно всё это, что бы разные элементы из массива (ссылки на экземпляры массива и есть "Spot") получили начальные координаты, конечные координаты и угол и начали свой движение. Но вот вопрос, а как я опосля смогу убить слушателя Энтер_фрейм, они будут появляться пачками, нужно убивать. Или придётся для каждого мувика наследовать этот класс и потом удалять (этот вариант я знаю как делать, но мороки много и добавляется ещё 7 классов).
Код AS3:
		public function fn_LocationSpot(i): void {
			gl_variable.indexSpot = i -1;
			var _t: int = 100;
			var _timer: Timer = new Timer(_t, i);
			_timer.addEventListener("timer", fn_TimerSpot);
			_timer.start();
		}
		private function fn_TimerSpot(e: TimerEvent): void {
			var Spot = VectorSpot[gl_variable.indexSpot];
//углы*********************************************************************************
			var angl: Number =(Math.atan((man.y - Spot.y) / (man.x - Spot.x))) / Math.PI * 180;
			if(angl > 0)
				angl -= 180;
			Spot.rotation = angl + 90;
//**************************************************************************************
			Spot.x = man.x;
			Spot.y = man.y;
			_stage.addChild(Spot);
			var j_x = (Math.random() * 1450) + 100;
			var j_y = (Math.random() * 750) + 180;
			playSpot = new PlaySpotClass (Spot, man.x,man.y, angl, j_x, j_y);
			_stage.addEventListener(Event.ENTER_FRAME, playSpot.fn_play);
			++gl_variable.indexSpotInStage;
			if  (gl_variable.indexSpot != 0)
			--gl_variable.indexSpot;
			if (gl_variable.indexSpot == 0)
				_stage.removeEventListener("timer", fn_TimerSpot);
				_stage.removeEventListener("timer", fn_TimerSpot);
		}
	}
}
Код AS3:
package SpotClass {
	import flash.events.Event;
	import flash.display.MovieClip;
 
	public class PlaySpotClass extends MovieClip{
		private var spot: MovieClip ;
		public var end_X: Number;
		public var end_Y: Number;
 
		public function PlaySpotClass(_spot, _x, _y, _rotation, _end_X, _end_Y) {
			spot = _spot;
			spot.x = _x;
			spot.y = _y;
			rotation = _rotation;
			end_X = _end_X;
			end_Y = _end_Y;
		}
		public function fn_play(e: Event):void{
			//движение
		}
	}
}
п.с. А то мож не совсем понятно, я экземпляры playSpot создаю внутри функции, так же как и слушателя и создав ещё один, я не знаю, как мне обратиться к предыдущему

Создать новую тему   Часовой пояс GMT +4, время: 14:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:29.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.