今天在编码过程中,发现触摸按钮后,按钮会回调两次。
button:addTouchEventListener(
function ()
--自定义函数内容
end
)
原因:
通过addTouchEventListener来添加触摸事件时,如果直接用无参匿名函数,会导致上述情况。这是因为触摸事件eventType分为began、moved、ended三种情况,所以在没有设置eventType的类型时,每种情况下都会执行注册的事件。这就会让人看起来执行了两次。(分别在began和ended)
解决办法:
button:addTouchEventListener(
function (sender,eventType)
if eventType == ccui.TouchEventType.began then
elseif eventType == ccui.TouchEventType.moved then
elseif eventType == ccui.TouchEventType.ended then
--自定义函数内容
end
end
)