티스토리 뷰
먼저 소스를 첨부하겠습니다.
local enterFrame1, enterFrame2
local touch1, touch2
local release1, release2
local release1 = function()
print ("release1")
--Not OK
--Runtime:removeEventListener( "touch", touch1 )
end
local release2 = function()
print ("release2")
--Not OK
--Runtime:removeEventListener( "touch", touch2 )
end
local enterFrame1 = function( event )
print ("enterFrame1")
end
local enterFrame2 = function( event )
print ("enterFrame2")
end
local touch1 = function( event )
if event.phase == "began" then
--OK
Runtime:removeEventListener( "enterFrame", enterFrame1 )
print ("touch1 began")
end
if event.phase == "ended" then
--OK
Runtime:removeEventListener( "enterFrame", enterFrame2 )
--Not OK
--Runtime:removeEventListener( "touch", touch2 )
timer.performWithDelay( 1000, release1 )
print ("touch1 ended")
end
end
local touch2 = function( event )
if event.phase == "began" then
print ("touch2 began")
end
if event.phase == "ended" then
--Not OK
--Runtime:removeEventListener( "touch", touch2 )
timer.performWithDelay( 1000, release2 )
print ("touch2 ended")
end
end
Runtime:addEventListener( "enterFrame", enterFrame1 )
Runtime:addEventListener( "enterFrame", enterFrame2 )
Runtime:addEventListener( "touch", touch1 )
Runtime:addEventListener( "touch", touch2 )
-- OK
--Runtime:removeEventListener( "touch", touch1 )
--Runtime:removeEventListener( "touch", touch2 )
print ( Runtime:hasEventSource( enterFrame1 ) )
추가한 주석을 함께 보시면, 등록한 "touch" 리스너 내부에서는 "touch" 리스너가 삭제가 되지 않는데
외부에서 삭제를 시도할 경우 잘 된다는 것을 알 수 있습니다.
직접 시뮬레이터에 넣어 돌려보셔도 됩니다.
현재 제가 터치 리스너 내부에서 터치리스너를 삭제를 해야하는데....
이렇게 터치 리스너 내부에서 삭제를 할 수가 없으니 굉장히 큰 문제입니다.
사실 저도 어떻게 해결을 해야할지 모르겠어서 혹시 도움을 받을 수 있을까 이렇게 포스트로 남깁니다.
해결방법을 찾으면 해결방법을 설명하는 포스트로 수정하도록 하겠습니다.
'프로그래밍 > 잡탕' 카테고리의 다른 글
[Corona] Draggable Sprite - 드래그가 가능한 이미지 (0) | 2012.02.03 |
---|---|
for in pairs 안에는 for in pairs이 있을 수 없습니다. (1) | 2012.02.01 |
Corona SDK API 레퍼런스 번역 페이지 (0) | 2012.01.29 |
[실전 예제]공격 이펙트 스프라이트 애니메이션 (0) | 2012.01.28 |
[실전 예제]Easing, Trasition을 이용하여 수축, 팽창을 반복하는 로고 제작 (0) | 2012.01.27 |
- Total
- Today
- Yesterday