在开发中,有时需要A Layer响应触摸,而B Layer不响应触摸,如果A Layer添加触摸事件监听,而B Layer不添加那么可以实现这个需求。但是如果A、B都需要响应触摸,但在某些时候只要求A响应B不响应,那么可以在A、B之间添加一个屏蔽了触摸事件的C Layer,这个Layer和A、B有同一个父节点,ZOrder在A之下B之上,那么A监听到了触摸之后,C屏蔽了触摸,B就监听不到触摸了。
使用Cocos(V2.3.2)新建了一个Cocos项目,然后使用Cocos Code IDE(Build:V1.2.0)导入,在src/app/views/目录下新建了一个Lua文件,代码如下:
local Pingbilayer = class("Pingbilayer",function()
return cc.LayerColor:create()
end)
function Pingbilayer:ctor(data,isTouming)
if data then
self.Rect = data.Rect
end
local sz = cc.c4f(0,0,0,146)
if isTouming then
sz = cc.c4f(0,0,0,0)
end
local _layer = cc.LayerColor:create(sz)
self:addChild(_layer,-1)
self:Pingbitouch()
end
function Pingbilayer:Pingbitouch()
local function onTouchBegan(touch, event)
print("--touch began--")
return