Cocos2dx只有touchUpInsid的按钮或菜单,有时可能会想要一个长按手势来触发事件。
-- 这是类名,命名这件事还是很麻烦的,凑合就是Button吧
local Button = {}
-- 触发时间,按多长时间触发
local mTriggerTime = 0.5-- 可抖动区域,如果在长按触发前移动超过这个距离则不会触发事件
local removableDis = 10
-- 类方法sprite -- 给谁添加这个事件 longPressHandler -- 长按触发回调方法
clickHandler -- 还可以添加单击事件(touchIn)可设定触发时间 triggerTime
Button.registerLongPressHandler = function(sprite, longPressHandler, clickHandler, triggerTime)triggerTime = triggerTime or mTriggerTime
-- 记录长按时间
local countTime = nil
-- 是用scheduler 来计时的,记录scheduler 的id
local sid = nil
-- 开始位置
local beganPoint= nil
-- 有没有回调过
local haveCall = false
-- 有没移动(超出可移动范围)
local isMoved = false-- 有没已添加过监听
if sp