admin管理员组

文章数量:1566647

在开发中,有时需要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

本文标签: 屏蔽事件