cocos2d-lua:控件长按处理
--[[
控件长按处理
@params widget 目标控件
@params commCallback(function) 正常点击回调
@params allowLongPress(boolean) 是否支持长按
@params longPressCallback(function) 长按回调
@params intervalTime(float) 判断长按的时间间隔(默认0.5s)
使用示例:
setTouchEventListenerEx(
widget,
function(sender, eventType)
print("正常点击")
end,
true,
function(sender, eventType)
print("长按")
end,
1.0
)
]]
function setTouchEventListenerEx(widget, commCallback, allowLongPress, longPressCallback, intervalTime)
local socket, beginTime = require("socket")
widget:addTouchEventListener(function(sender, eventType)
if eventType == ccui.TouchEventType.began then
beginTime = socket.gettime()
elseif eventType == ccui.TouchEventType.ended or eventType == ccui.TouchEventType.canceled then
local diffTime = socket.gettime() - beginTime
local longPressTime = intervalTime or 0.5
if allowLongPress and diffTime > longPressTime then
if longPressCallback then
longPressCallback(sender, eventType)
end
else
if commCallback then
commCallback(sender, eventType)
end
end
end
end)
end