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

小菜鸟战斗机 2018-3-27 214

cocos2d-x 3.3

代码:

[ruby] view plain copy
  1. --比倍界面层  
  2. local BiBeiLayer = class("BiBeiLayer", function ()  
  3.     return cc.LayerColor:create(cc.c4b(0,0,0,125))  
  4. end)  
  5.   
  6. --初始化  
  7. function BiBeiLayer:ctor()  
  8.       
  9.     -- 创建一个事件监听器类型为 OneByOne 的单点触摸  
  10.     local  listenner = cc.EventListenerTouchOneByOne:create()  
  11.       
  12.     -- ture 吞并触摸事件,不向下级传递事件;  
  13.     -- fasle 不会吞并触摸事件,会向下级传递事件;  
  14.     -- 设置是否吞没事件,在 onTouchBegan 方法返回 true 时吞没  
  15.     listenner:setSwallowTouches(true)  
  16.       
  17.     -- 实现 onTouchBegan 事件回调函数  
  18.     listenner:registerScriptHandler(function(touch, event)  
  19.         local location = touch:getLocation()  
  20.   
  21.         print("EVENT_TOUCH_BEGAN")  
  22.         return true  
  23.     end, cc.Handler.EVENT_TOUCH_BEGAN )  
  24.       
  25.     -- 实现 onTouchMoved 事件回调函数  
  26.     listenner:registerScriptHandler(function(touch, event)  
  27.         local locationInNodeX = self:convertToNodeSpace(touch:getLocation()).x       
  28.   
  29.         print("EVENT_TOUCH_MOVED")  
  30.     end, cc.Handler.EVENT_TOUCH_MOVED )  
  31.       
  32.     -- 实现 onTouchEnded 事件回调函数  
  33.     listenner:registerScriptHandler(function(touch, event)  
  34.         local locationInNodeX = self:convertToNodeSpace(touch:getLocation()).x  
  35.   
  36.         print("EVENT_TOUCH_ENDED")  
  37.     end, cc.Handler.EVENT_TOUCH_ENDED )  
  38.   
  39.     local eventDispatcher = self:getEventDispatcher()  
  40.     -- 添加监听器  
  41.     eventDispatcher:addEventListenerWithSceneGraphPriority(listenner, self)  
  42.   
  43. end  


最新回复 (0)
返回