무언가 자동으로 이뤄지는것을 마냥 믿기도 하지만, 보통 내가 모르는 오류는 꼭 남의 것을 제대로 읽어보지 않고 써서 생기는 문제들이다.(당연한건가?)
Anyway.
나는 레이어의 onEnter함수에서 터치이벤트 리스너를 만들고, 레이어의 멤버로 가지고 있다가,
레이어가 onExit함수를 호출할때, 멤버로 가진 리스너를 지우는 식으로 구현한다.
근데 생각해보니 이벤트리스너를 적용할때, 여러 노드에 같은 이벤트리스너를 적용할때는 복제해서 쓰기 때문에 이런식으로 하면 메모리상에 해제되지 않고 남아있는 리스너가 있을 것이다.
그렇기 때문에 대부분 책의 예제에선 이벤트디스패쳐에서 같은 종류의 이벤트들을 한번에 지워주는 함수를 이용하는가보다.
당연한 것인데 별생각 없이 만들면 종종 이런 짓을 할때가 있다.
댓글 없음:
댓글 쓰기