在引擎中提供了几个有关透明度变化的动作:CCFadeIn,CCFadeOut,CCFadeto
CCFadeIn:the opacity from 0 to 255
CCFadeOut:the opacity from 255 to 0
CCFadeto:from the current value to a custom one
下面简单记录一下我所遇到的一些问题:
问题一:父Sprite执行fade动作,子Sprite不执行问题
看到下面的代码:
- CCSizewinSize=CCDirector::sharedDirector()->getWinSize();
- CCSprite*bgSprite=CCSprite::create("HelloWorld.png");
- bgSprite->setPosition(ccp(winSize.width/2,winSize.height/2));
- this->addChild(bgSprite);
- CCSprite*sprite=CCSprite::create("Icon.png");
- sprite->setPosition(ccp(200,200));
- bgSprite->addChild(sprite);
- CCFadeOut*fadeout=CCFadeOut::create(1);
- bgSprite->runAction(fadeout);
那么这个问题如何解决呢? --- 一个最笨的方法就是 去getChildren() 然后每一个子sprite再去执行这个动作。
那么,还有其他方法吗?
--有的。我们可以用setCascadeOpacityEnabled 这个方法。