很多时候,必须要锁定自身以外的层,如做一个模态弹出窗口。
下面有关资料转载于:http://linuxp.blog.163.com/blog/static/17096277201382115558525/
下面的self继承于CCLayer
local listener = function(eventType, x, y)
-- log.debug(eventType.. "="..x)
if eventType == CCTOUCHBEGAN then
return self:touch_began(x, y)
elseif eventType == CCTOUCHMOVED then
self:touch_moved(x, y)
elseif eventType == CCTOUCHENDED then
self:touch_ended(x, y)
elseif eventType == CCTOUCHCANCELLED then
self:touch_cancelled(x, y)
end
end
self:registerScriptTouchHandler(listener, false, -999999999, true)
--注意,这儿第四个参数要设置为true,第三个参数为响应优先级,具体请参看文档
2、打开当前所在layer的触摸事件
self:setTouchEnabled(true)
3、在开始触摸的时候返回true
function HelloWorldLayer:touch_began(x, y)
return true
end
这样之后,就只有当前的layer可以响应触控事件了。