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

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

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

Регистрация: Oct 2013
Сообщений: 22
По умолчанию Получение информации в обработчике события

Есть массив объектов(картинка и параметры для неё), т.е. массив картинок с параметрами.
Все они выводятся на экран в цикле каждая картинка имеет персональный спрайт(из этого массива), к которому привязаны какие то события. В обработчики событий target - ссылается на Bitmap картинки, а currentTarget - на тот спрайт на котором расположена картинка.

Всё работает отлично но нужно в обработчике, когда возникает событие, точно знать какой индекс у данного спрайта поймавшего это событие, сейчас я реализовал это через, параметр z (Sprite.z) но не думаю, что это правильно может есть более гибкий способ?

Код AS3:
		[Embed(source="../../../images/11.png")]
		protected static const image11:Class;
		[Embed(source="../../../images/22.png")]
		protected static const image22:Class;
		[Embed(source="../../../images/33.png")]
		protected static const image33:Class;
		[Embed(source="../../../images/44.png")]
		protected static const image44:Class;
		[Embed(source="../../../images/55.png")]
		protected static const image55:Class;
		[Embed(source="../../../images/66.png")]
		protected static const image66:Class;
		[Embed(source="../../../images/77.png")]
		protected static const image77:Class;
		[Embed(source="../../../images/88.png")]
		protected static const image88:Class;
		[Embed(source="../../../images/99.png")]
		protected static const image99:Class;
 
		private var ims:Array = new Array(
			{x:0,y:-2,i:new image11() as Bitmap,s:new Sprite()},	//1
			{x:170,y:0,i:new image22() as Bitmap,s:new Sprite()},	//2
			{x:170,y:110,i:new image33() as Bitmap,s:new Sprite()},	//3
			{x:380,y:20,i:new image44() as Bitmap,s:new Sprite()},	//4
			{x:440,y:65,i:new image55() as Bitmap,s:new Sprite()},	//5
			{x:550,y:0,i:new image66() as Bitmap,s:new Sprite()},	//6
			{x:610,y:30,i:new image77() as Bitmap,s:new Sprite()},	//7
			{x:790,y:0,i:new image88() as Bitmap,s:new Sprite()},	//8
			{x:590,y:162,i:new image99() as Bitmap,s:new Sprite()}	//8
		);
 
 
		public function Images()
		{
			for (var i:Number = 0; i < ims.length; i++) {
				ims[i].s.x = ims[i].x;
				ims[i].s.y = ims[i].y;
				ims[i].s.z = i; //то самое ... при больших значениях z контент может сильно уменьшится
				ims[i].s.addChild(ims[i].i);
				ims[i].s.addEventListener(MouseEvent.MOUSE_OVER, imageOver);
				ims[i].s.addEventListener(MouseEvent.MOUSE_OUT, imageOut);
				addChild(ims[i].s);
			}
		}
 
		private function imageOver(e:Event):void
		{
 
		}
 
		private function imageOut(e:Event):void
		{
 
		}

Старый 26.03.2014, 18:15
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
http://flasher.ru/forum/showthread.php?t=147849
__________________
Reality.getBounds(this);

Старый 26.03.2014, 18:41
SkyBall вне форума Посмотреть профиль Отправить личное сообщение для SkyBall Найти все сообщения от SkyBall
  № 3  
Ответить с цитированием
SkyBall

Регистрация: Oct 2013
Сообщений: 22
т.е. если я правильно понял полазяя по ссылочкам, то лучше не создавать массив объектов, а создать массив классов(а лучше вектор, раз тип данных будет одинаковым) и привязывать событие к классу со своими свойствами и тогда будет мне счастье

спасибо за материальчик

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

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

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


 


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


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