AS3 быстрый и эффективный способ удаления детей и слушателей и отказа от родителя - PullRequest
0 голосов
/ 28 октября 2010

Существует ли быстрый и эффективный способ удаления всех детей-слушателей и т. Д. Из моего приложения. Если все содержится в экранном объекте на сцене под названием View? У меня много динамически вызываемых детей, и их слушатели не удаляются, когда я удаляю представление, в котором они находятся.

    public function _discard ():void
    {
        // Quick way to discard the view, remove children and listeners
        removeChild(View);
        View = null;
    }

Это правильный способ удаления родителей и детей?

Ответы [ 3 ]

2 голосов
/ 28 октября 2010

Если вы используете слушателей со слабыми ссылками, то слушатели не будут препятствовать сборке мусора при их аннулировании.

useWeakReference - это 5-й параметр в вызове addEventListener.

2 голосов
/ 28 октября 2010

AFAIK, нет способа перечислить слушателей в ActionScript.Поэтому вы должны написать код очистки, removeEventListener вызовы симметричны addEventListener.

0 голосов
/ 28 октября 2010

alxx правильно. нет простого способа решить эту проблему. Чтобы не удалять вручную всех дочерних элементов / слушателей, я бы создал вспомогательный метод, который получает View и рекурсивно удаляет всех дочерних элементов и их соответствующих слушателей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...