только в самом 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);
}
}
}