처음에는 보이는 것보다 더 까다 롭습니다.
나는 system.setTapDelay()가 작동한다고 생각한다. 적어도 그것은 보인다. 하지만 단일 탭을 제외시키려는 것이 아닙니다. 더 느린 더블 탭은 받아 들여야합니다. 또는이 함수의 문서가 오도 된 것일 수도 있습니다. 어떤 경우라도 Corona 개발팀이 향후이를 분명히 밝히기를 바랍니다.
이제 앱에서 단일 탭에 반응해야하는 객체와 이중 탭에 반응해야하는 객체가 맞습니까?
그리고 어쩌면 하나 또는 둘 모두에 반응해야하지만 두 가지 모두에 반응해야하는 개체조차도. 그러나이 세 번째 디자인 선택을 사용하면 단일 탭의 경우 객체가 두 번 탭의 첫 번째 히트가 아닐 때까지 "기다려야"합니다. 따라와? 다시 말해, 동일한 객체에서 단일 및 이중 탭을 구별하기 위해 단일 탭이 "지연"될 수 있습니다. 이제
function onSingleTap(event)
if event.numTaps == 1 then
print("received a single tap")
end
end
objectThatRespondsToSingleTapOnly:addEventListener("tap", onSingleTap)
function onDoubleTap(event)
if event.numTaps >= 2 then
print("received a double tap")
end
end
objectThatRespondsToDoubleTapOnly:addEventListener("tap", onDoubleTap)
을 당신은 또한 두 번이 추가 수에서 하나를 구별 객체를 원하는 경우 :
local doubleTapTimeout = 600 -- values under 300 become hard to use
-- BTW make this a little higher than the tap delay, if you set it manually
function onExclusiveSingleTap(event)
print("received an exclusive single tap")
end
function onExclusiveDoubleTap(event)
print("received an exclusive double tap")
end
function onExclusiveTap(event)
if event.numTaps == 1 then
event.target.singleTapWaiting = timer.performWithDelay(
doubleTapTimeout,
function(e) onExclusiveSingleTap(event) end
)
elseif event.numTaps >= 2 then
timer.cancel(event.target.singleTapWaiting)
onExclusiveDoubleTap(event)
end
end
objectThatRespondsToBothTaps:addEventListener("tap", onExclusiveTap)
을
내가 같이 갈 것 간단한 방법으로이 모든 것을 구현하려면
참조를 전달하는 대신 Lua 클로저에서 이벤트 객체의 값을 복사하면 안되기 때문에 메모리 누수가 발생할 수 있습니다.
function(e) onExclusiveSingleTap({
name = "tap",
x = event.x,
y = event.y,
numTaps = 1,
target = event.target
}) end