Показать сообщение отдельно
Старый 01.12.2011, 21:04
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 5  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
только в самом Value массив targetsArray не объявлен. Мне кажется надо просто сохранять в Value ссылку на e.target, и перебирать массив уже в основном классе. Попробую, отпишусь о результатах.

Добавлено через 3 часа 32 минуты
Пока не пробовал кодить, займусь этим завтра, но пока я думал над использованием e.target мне начало казаться что этот метод не сработает. Какой то бред получается, событие диспатчит экземпляр Value и он сам на себя ссылку сохраняет? А потом есть же другие предметы, и они тоже могут занимать на момент проверки гнезда - по любому надо проверять 2 массива. Хотя есть еще идея нечто подобное сделать с dropTarget

Все решил проблему. Всем спасибо за помощь :-). В общем развел выставление галочки и стирание её по двум событиям (одно на MOUSE_UP другое на MOUSE_DOWN)
Вот итоговый код, вроде все работает как надо:
Код AS3:
function checkUP(e:Event):void
		{
			if (! e.target is Value)
			{
				return;
			}
			var item:Value = e.target as Value;
			for (var j:Number = 0; j < targetsArray.length; j++)
			{
				if (item.rank == targetsArray[j].targetRank)
				{
					trace (item.rank +" " + targetsArray[j].targetRank)
					if (targetsArray[j].checkShow)
					{
						targetsArray[j].checkShow = false;
						trace (targetsArray[j].checkShow + " ветка UP" + " j=" + j);
						item.rank = null;
					}
				}
			}
		}
		function checkHit(e:Event):void
		{
			if (! e.target is Value)
			{
				return;
			}
			var item:Value = e.target as Value;
			for (var j:Number = 0; j < targetsArray.length; j++)
			{
				if (item.hitTestObject(targetsArray[j]))
				{
					trace("hitting");
					item.rank = targetsArray[j].targetRank;
					item.x = targetsArray[j].x;
					item.y = targetsArray[j].y;
					targetsArray[j].checkShow = true;
					trace (targetsArray[j].checkShow + " ветка Hit" + " j=" + j);
				}
 
			}
 
 
		}


Последний раз редактировалось PainKiller; 03.12.2011 в 20:23.