quick 3.3 按钮多次点击出现问题的解决



quick 3.3 按钮多次点击出现问题的解决方法,就是在点击事件传递的时候,截断点击事件的分发
如果两次点击事件时间过短,则不分发点击事件


function EventProtocol:dispatchEvent(event)
    event.name = string.upper(tostring(event.name))
    local eventName = event.name
    if DEBUG > 1 then
        printInfo("%s [EventProtocol] dispatchEvent() - event %s", tostring(self.target_), eventName)
    end


    if self.listeners_[eventName] == nil then return end
    event.target = self.target_
    event.stop_ = false
    event.stop = function(self)
        self.stop_ = true
    end


    if event.name=="CLICKED_EVENT" then
        local currentTime = os.clock()
        if event.target.clickTimePre  then
            if currentTime-event.target.clickTimePre<=0.3 then 
                print("-----------时间太短----------------",currentTime,event.target.clickTimePre)
                event.target.clickTimePre = currentTime
                return
            end
            event.target.clickTimePre = currentTime
        else
            event.target.clickTimePre = currentTime
        end
    end
    
    for handle, listener in pairs(self.listeners_[eventName]) do
        if DEBUG > 1 then
            printInfo("%s [EventProtocol] dispatchEvent() - dispatching event %s to listener %s", tostring(self.target_), eventName, handle)
        end
        -- listener[1] = listener
        -- listener[2] = tag
        event.tag = listener[2]
        listener[1](event)
        if event.stop_ then
            if DEBUG > 1 then
                printInfo("%s [EventProtocol] dispatchEvent() - break dispatching for event %s", tostring(self.target_), eventName)
            end
            break
        end
    end


    return self.target_
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值