function NodeHelper:createMaskedLayer(parentNode,preferedSize,position,inverted) ---遮罩的实现
if inverted == nil then inverted = true end
if parentNode:getChildByTag(90030) then
parentNode:removeChildByTag(90030,true)
end
local layer = CCLayerColor:create()
layer:setOpacity(128) --透明度降低一半
layer:setColor(NodeHelper:_getColorFromSetting("0 0 0"))
layer:setTag(520101)
layer:setZOrder(-100)
layer:setPosition(ccp(0,0))
layer:setAnchorPoint(ccp(0,0))
--layerSize高度稍微大于屏幕高度
local layerSize = CCSizeMake(CCDirector:sharedDirector():getWinSize().width,CCDirector:sharedDirector():getWinSize().height*1.2)
layer:setContentSize(layerSize)
local clipNode = CCClippingNode:create() --创建一个裁剪节点来实现遮罩的效果
local stencilNode = CCNode:create()
stencilNode:setContentSize(layerSize)
stencilNode:setPosition(ccp(0,0))
local sprite9 = CCScale9Sprite:create("UI/MainScene/9Sprite/u_9Sprite15.png")
sprite9:setPreferredSize(preferedSize) --setPreferredSize 就是设置需要生成的尺寸大小。
sprite9:setPosition(position)
sprite9:setAnchorPoint(ccp(0,0))
stencilNode:addChild(sprite9) --将sprite9添加到node中
clipNode:setStencil(stencilNode) --裁剪节点将按照这个模板来裁剪区域
clipNode:setAnchorPoint(ccp(0,0))
clipNode:setPosition(ccp(0,0))
clipNode:addChild(layer)
clipNode:setTag(90030)
clipNode:setZOrder(-100)
clipNode:setInverted(inverted) --用来设置显示裁剪区域还是非裁剪区域的
parentNode:addChild(clipNode)
return clipNode,90030
end
if inverted == nil then inverted = true end
if parentNode:getChildByTag(90030) then
parentNode:removeChildByTag(90030,true)
end
local layer = CCLayerColor:create()
layer:setOpacity(128) --透明度降低一半
layer:setColor(NodeHelper:_getColorFromSetting("0 0 0"))
layer:setTag(520101)
layer:setZOrder(-100)
layer:setPosition(ccp(0,0))
layer:setAnchorPoint(ccp(0,0))
--layerSize高度稍微大于屏幕高度
local layerSize = CCSizeMake(CCDirector:sharedDirector():getWinSize().width,CCDirector:sharedDirector():getWinSize().height*1.2)
layer:setContentSize(layerSize)
local clipNode = CCClippingNode:create() --创建一个裁剪节点来实现遮罩的效果
local stencilNode = CCNode:create()
stencilNode:setContentSize(layerSize)
stencilNode:setPosition(ccp(0,0))
local sprite9 = CCScale9Sprite:create("UI/MainScene/9Sprite/u_9Sprite15.png")
sprite9:setPreferredSize(preferedSize) --setPreferredSize 就是设置需要生成的尺寸大小。
sprite9:setPosition(position)
sprite9:setAnchorPoint(ccp(0,0))
stencilNode:addChild(sprite9) --将sprite9添加到node中
clipNode:setStencil(stencilNode) --裁剪节点将按照这个模板来裁剪区域
clipNode:setAnchorPoint(ccp(0,0))
clipNode:setPosition(ccp(0,0))
clipNode:addChild(layer)
clipNode:setTag(90030)
clipNode:setZOrder(-100)
clipNode:setInverted(inverted) --用来设置显示裁剪区域还是非裁剪区域的
parentNode:addChild(clipNode)
return clipNode,90030
end