2012-02-03 68 views
2

我正在尝试对CCLayerColor的不透明度进行动画处理,但它不工作。这是我迄今的努力。我在.H定义retryMenuLayer像cocos2D CCLayer或CCLayerColor setOpacity

CCLayerColor *retryMenuLayer; 

和.m文件

retryMenuLayer = [CCLayerColor node]; 
[self addChild:retryMenuLayer z:5]; 

retryMenuLayer.scale = 0.5; 
[retryMenuLayer setOpacity:0]; 

,并在出现的方法,我打电话这一点。

[retryMenuLayer runAction:[CCFadeIn actionWithDuration:1]]; 

//OR 

[retryMenuLayer setOpacity:255]; 

会发生什么事是retryMenuLayer的背景动画化从透明到全黑,但里面的内容(其子 - 带有按钮的菜单)不动画。事实上,我必须使用可见性属性至少消失,直到调用该方法。

retryMenuLayer.visible = NO; // When initiating. 
retryMenuLayer.visible = YES; // When need to appear the layer. 
+0

你预计会发生什么?发生什么事? – Abizern 2012-02-05 18:14:48

回答

4

CCLayerColor透明,我用

CCLayerColor *_shadowLayer = [CCLayerColor layerWithColor: ccc4(0,0,0, 100)]; 

一个透明的黑色。

为了让FadeIn,这应该工作:这里

CCLayerColor _shadowLayer = [CCLayerColor layerWithColor: ccc4(0,0,0, 0)]; 
[_shadowLayer setContentSize: CGSizeMake(_winSize.width, _winSize.height)]; 
_shadowLayer.anchorPoint = ccp(0.0f, 0.0f); 
_shadowLayer.position = ccp(0, 0); 

[self addChild: _shadowLayer]; 

[_shadowLayer runAction: [CCFadeTo actionWithDuration:1.5f opacity:100]]; 

注意,我添加了阴影层self,那是我自己的个性化层。如果我将它添加到淡入淡出的精灵中,则不透明度不会穿透到阴影图层。不过,在the link in qklxtlx's answer中用户“aerostat”似乎有一个解决方法。