![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2012
Сообщений: 836
|
Создаю по циклу классы
В классе Pozitiv есть слушатели, к примеру клик мыши на объекте. Там же есть и его удаление после клика. Но у меня сложилась такая проблема, что по нажатию на любой объект, удаляется слушатель только внутри конкретно этого класса, остальные же продолжают работать. Всю ночь уже сижу, кучу вариантов перепробывал - не фига не получается. Дело в том, что после нажатия кнопки на один объект, остальные объекты(в классах Pozitiv) удаляются из одного общего контейнера в которых они лежат, после чего классы регенерируются выше описанным образом, но уже другим порядком и в общем то изменения там есть. Так вот какого то фига, получается так, что после того как они отрегенерируются(вроде казалось совершенно другие экземпляры и другие объекты), если нажать на объект, срабатывает одновременно 2 слушателя, если нажать 100 раз, соответственно после регенерации 100 раз сработает слушатель за один клик. Подскажите решение, что-то вообще всю голову сломал |
|
|||||
|
Регистрация: Sep 2011
Сообщений: 25
|
Цитата:
Следовательно остальные события у других объектах остаются и вы их удаляете. При удалении вызываете функцию, которая и будет удалять все слушатели. . Вообще я бы не советовал в каждом классе создавать слушателя. У меня везде, для примера, используется один слушатель события мыши. Далее я уже смотрю по имени объекта и делаю что мне нужно (допустим кнопки, каждой даю имя и все, не нужно кнопке индивидуальный слушатель). Если же объектов много идентичных, то проверяю что этот объект тот который мне нужен. Для вашего примера это выглядело бы так: |
|
|||||
|
Я не вижу в этом коде никакого добавления слушателей. Приведенный код никакого отношения к проблеме не имеет.
п.с. Сразу советую научиться различать класс и экземпляр класса. То, что у вас описано, относится к экземплярам класса, а не к классам. Эта разница критически важна. п.п.с. перепробовал пишется через О, а не через Ы |
|
|||||
|
Регистрация: Jan 2012
Сообщений: 836
|
Спасибо. Воспользовался способом создания функции по удалению всех слушателей. Хотя по сути надо было удалить только один слушатель.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|