最近写动画遇到这么一个问题:给父view
设置渐入动画时,子view
没有跟随父view
渐变
其代码如下:
self.view:setOpacity(0)
self.view:runAction(cc.FadeIn:create(10))
查看源码发现可以设置级联view
透明度的开关设置
spriteNode:setOpacity(0)
spriteNode:runAction(cc.FadeIn:create(10))
spriteNode:setCascadeOpacityEnabled(true)//参数为true,则子类随父类变化而变化
但是发现只是spriteNode
的第一层子view
发生了渐变,子view
的孩子没有随其变化
解决办法:
--子类随父类透明度变化而变化递归设置
function utils:setCascadeOpacityEnabled( node, is_true )
if node then
if node.setCascadeOpacityEnabled then
node:setCascadeOpacityEnabled( is_true)
end
local children = node:getChildren()
for _, child in ipairs(children or {}) do
utils:setCascadeOpacityEnabled( child, is_true) --递归设置
end
end
end
总结:
node:setCascadeOpacityEnabled(true)/;//参数为true,则子类随父类变化而变化
注:这个方法只设置一级子view随父类透明度变化而变化