cocos2d lua 长按按钮 触发事件

local scheduler = require("framework.scheduler")

--[[  长按按钮,触发事件
        @param node 长按的按钮或者图片等节点
        @param touchTime 触摸的时间
        @param callback 长按后触发的事件
        @param delayTime 如需延长时间
        @param
]]
local function longTouchEvent(node,touchTime,callback)
     local shcheduleID
     node:addTouchEventListener(function(sender,type)
        --local beginTime = nil
        if type == cc.EventCode.BEGAN then
            -- beginTime = os.time()
             print("begin touch..")
            -- --display.scheduler()
            -- shcheduleID = scheduler.scheduleGlobal(function()
                
            --     if beginTime == nil then return end

            --     if os.time() - beginTime >= touchTime and callback then 
            --         if delayTime then
            --          scheduler.performWithDelayGlobal(callback, delayTime)
            --         else
            --             callback()
            --         end
            --         if shcheduleID then
            --             scheduler.unscheduleGlobal(shcheduleID)
            --         end
            --    end
            -- end
            --     ,0.01)

    --      shcheduleID = scheduler.scheduleGlobal(function()
    --         --先运行touchTime时间单位,在执行callback
    --             scheduler.unscheduleGlobal(shcheduleID)
    --             callback()
    --             print("cancel scheduler...int  sch")
    -- end, touchTime)

           shcheduleID = scheduler.performWithDelayGlobal(callback, touchTime)
        elseif type == cc.EventCode.ENDED then
            print("ended touch..")
            if shcheduleID then
                print("cancell shchedule")

                scheduler.unscheduleGlobal(shcheduleID)
                shcheduleID = nil
            end
        elseif type == cc.EventCode.MOVED then
            print("move touch...")    
        elseif type == cc.EventCode.CANCELLED then
            print("cancel touch...")
            if shcheduleID then 
              scheduler.unscheduleGlobal(shcheduleID)
              shcheduleID = nil
            end
        end
        end)

end


猜你喜欢

转载自blog.csdn.net/twicetwice/article/details/79911546