Здравствуйте.
Есть такая программа: На сцене находится стол на котором имеется 12 ячеек. Сверху и снизу стола находится по стопке карт (союзника и противника). Когда я беру карту мышкой и вожу ею над ячейками происходит определение над какой именно ячейкой находится карта и у этой ячейки изменяется прозрачность, когда я убираю карту с этой ячейки, то прозрачность становится исходной (допустим сначала было 05 процентов, потом стало 1).
Проблема: После того как я поводил картой над ячейками, я возвращаю карту в исходное место (опускаю под стол) и беру следующую карту, так же вожу её над ячейками — изменяется прозрачность, опускаю под стол.
Но вот когда я беру предыдущую карту и ввожу над ячейками, то прозрачность не изменяется, хотя определение того, что над ячейками находится карта происходит.

Код AS3:
package src {
public class Ally
{
public function Ally()
{
trace("Класс хождения союзника запущен");
}
//Этот метод позволяет брать карты, которые считаются картами союзника и находятся вне стола.
public function takeCard(takeCard:MovieClip):void
{
var cardsLength:int = Settings.cards.length
for(var take:int = 0; take < cardsLength; take++)
{
var picture:MovieClip = Settings.cards[take].getPicture();
if(picture == takeCard)
{
var ally:Boolean = Settings.cards[take].ally;
var table:Boolean = Settings.cards[take].table;
if(!table)
{
if(ally)
{
picture.startDrag();
picture.addEventListener(Event.ENTER_FRAME, transparencySituation);
break;
}
}
}
}
}
//Этот метод проверяет над какой ячейкой (место на столе, куда ставится карта) находится взятый объект и изменяет прозрачность этой ячейки.
private function transparencySituation(event:Event):void
{
var card:MovieClip = MovieClip(event.target);
var cX:Number = card.x;
var cY:Number = card.y;
var cW:Number = card.width;
var cH:Number = card.height;
var situationLength:int = Settings.situations.length;
for(var transparency:int = 0; transparency < situationLength; transparency++)
{
var situation:MovieClip = Settings.situations[transparency].getPicture();
var sX:Number = situation.x;
var sY:Number = situation.y;
var sW:Number = situation.width;
var sH:Number = situation.height;
if(cX + cW > sX && cX < sX && cY + cH > sY && cY < sY)
{
situation.alpha = Settings.takeAlphaSituation;
}
else
{
situation.alpha = Settings.releaseAlphaSituation;
}
}
}
}
}
Добавлено через 2 часа 28 минут
Проблему решил. Оказалось, что удаление события происходило не всегда и каждый раз "трогая" всё новую и новую карту я добавлял событие — каждое событие проверяло соответствие координат со своей картой и поэтому не у всех карт изменялась прозрачность. Просто удаление события было только у тех карт, которые оставались в ячейке.