admin 发表于 2021-11-20 11:29:19

cocos2d-x v3.x Lua 中 [cc.Layer] 如何不让触摸事件向下转递

--比倍界面层
local BiBeiLayer = class("BiBeiLayer", function ()
    return cc.LayerColor:create(cc.c4b(0,0,0,125))
end)

--初始化
function BiBeiLayer:ctor()
   
    -- 创建一个事件监听器类型为 OneByOne 的单点触摸
    locallistenner = cc.EventListenerTouchOneByOne:create()
   
    -- ture 吞并触摸事件,不向下级传递事件;
    -- fasle 不会吞并触摸事件,会向下级传递事件;
    -- 设置是否吞没事件,在 onTouchBegan 方法返回 true 时吞没
    listenner:setSwallowTouches(true)
   
    -- 实现 onTouchBegan 事件回调函数
    listenner:registerScriptHandler(function(touch, event)
      local location = touch:getLocation()

      print("EVENT_TOUCH_BEGAN")
      return true
    end, cc.Handler.EVENT_TOUCH_BEGAN )
   
    -- 实现 onTouchMoved 事件回调函数
    listenner:registerScriptHandler(function(touch, event)
      local locationInNodeX = self:convertToNodeSpace(touch:getLocation()).x   

      print("EVENT_TOUCH_MOVED")
    end, cc.Handler.EVENT_TOUCH_MOVED )
   
    -- 实现 onTouchEnded 事件回调函数
    listenner:registerScriptHandler(function(touch, event)
      local locationInNodeX = self:convertToNodeSpace(touch:getLocation()).x

      print("EVENT_TOUCH_ENDED")
    end, cc.Handler.EVENT_TOUCH_ENDED )

    local eventDispatcher = self:getEventDispatcher()
    -- 添加监听器
    eventDispatcher:addEventListenerWithSceneGraphPriority(listenner, self)

end


页: [1]
查看完整版本: cocos2d-x v3.x Lua 中 [cc.Layer] 如何不让触摸事件向下转递