Вы ищете removeChild()
.
Обычно я создаю remove()
метод в классе для объекта, чтобы вы могли легко вызвать thing.remove();
Это будет выглядеть так:
public function remove():void
{
// remove from arrays
// remove added event listeners
if(parent) parent.removeChild(this);
}
А еще лучше, создайте базовый класс для ваших видимых элементов, который имеет вышеописанный метод remove()
, а затем переопределите его в расширяющих классах, чтобы выможно удалить конкретных слушателей и так далее.Таким образом, предполагая, что вышеприведенное относится к базовому классу, переопределение будет выглядеть в расширяющем классе:
override public function remove():void
{
removeEventListener(MouseEvent.CLICK, _click);
super.remove();
}
Обновление согласно комментарию:
Вы можете отправитьсобытие из метода remove()
и прослушивание его в классе документа, которое позволит увеличить счет.
public function remove():void
{
// dispatch removed event
var evt:Event = new Event("removed");
dispatchEvent(evt);
// remove from arrays
// remove added event listeners
if(parent) parent.removeChild(this);
}
Затем при создании объектов в классе документа используйте:
thing.addEventListener("removed", removed);
Отсюда вы можете сделать (в классе документа):
private function removed(e:Event):void
{
e.target.removeEventListener("removed", removed);
points ++;
}