查看: 2188|评论: 0
个人博客

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

admin 2021-11-20 11:29 2188 0
[复制链接]

1292

文章

380

评论

1万

积分

管理员

夏墨独周

积分
10100

论坛元老技术达人

QQ
发表于 2021-11-20 11:29:19 | 显示全部评论序号 |阅读模式
  1. --比倍界面层
  2. local BiBeiLayer = class("BiBeiLayer", function ()
  3.     return cc.LayerColor:create(cc.c4b(0,0,0,125))
  4. end)

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

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

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

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

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

  37. end
复制代码


来源:易游模拟器(QQ:207621422),转载请注明出处!
您需要登录后才可以评论 登录 | 立即注册

当前分类积分规则

关闭

站长推荐上一条 /1 下一条

QQ|易游网-易游模拟器 Copyright @2015-2026 ( 浙ICP备15028007号-1 )

© 2026 易游网-易游模拟器 Copyright @2015-2026

快速评论 返回顶部 返回列表