2012-02-03 82 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」似乎有一個解決方法。