易游网-易游模拟器

 找回密码
 立即注册
查看: 793|回复: 0

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

[复制链接]

1412

主题

1669

帖子

1万

积分

管理员

夏墨独周

Rank: 9Rank: 9Rank: 9

积分
10094

论坛元老技术达人

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),转载请注明出处!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|易游网-易游模拟器 Copyright @2015-2021 ( 浙ICP备15028007号-1 )

GMT+8, 2024-11-27 09:57 , Processed in 0.028963 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表