CCFadeOut淡出动作不起作用求解

在项目中我建了一个类A继承了CCNode类,用于作为其它相同性质类的父类,
然后我建了另一个类B继承了类A

然后在类B中,建立一个实现动作的方法
大致代码如下

{
        ....
    CCMoveBy *upMove = CCMoveBy::create(0.3f, ccp(0, 50));

    CCRotateBy *forwardRotate = CCRotateBy::create(0.2f, 7, 0);
    CCRotateBy *backRotate = CCRotateBy::create(0.2f, -7, 0);
    //CCActionInterval *fadeOut = CCFadeOut::create(0.8f); // 淡出
    
    

    CCActionInterval *noteRotate = CCSequence::create(forwardRotate, backRotate, NULL);
    CCSpawn  *spawn = CCSpawn::create(upMove, noteRotate, /*fadeOut, */ NULL);
    CCActionInterval *seq = CCSequence::create(fadeOut, fadeOutBack, NULL);
    
    CCCallFunc *callFun = CCCallFunc::create(this, callfunc_selector(CMusicalNote::MusicalNoteActionEnd));
    CCActionInterval *action = CCSequence::create(spawn, callFun, NULL);
    runAction(action);
}

```


方便我在类C里需要的时候调用此方法,现在这样是正常的,动作能正常播放。
之后我加入CCFadeOut这个动作就出问题了,加入后不但淡出的动作不出来,反而呈现出类似CCDelay的效果。

后来我把其它动作都去掉,只运行CCFadeOut一个动作,runAction(fadeOut);
效果依旧是出不来。

:10:请问这是什么原因呢?学习这一个月以来,遇到不少很奇怪的问题,真让我挺头痛的。

楼主,为了效果我稍微改了一下你的参数,fadeout是没有问题的。。

    //Test
    CCMoveBy *upMove = CCMoveBy::create(1.3f, ccp(0, 50));
    
    CCRotateBy *forwardRotate = CCRotateBy::create(1.2f, 70, 0);
    CCRotateBy *backRotate = CCRotateBy::create(1.2f, -70, 0);
    CCActionInterval *fadeOut = CCFadeOut::create(0.8f); // 淡出
    
    CCActionInterval *noteRotate = CCSequence::create(forwardRotate, backRotate, NULL);
    
    CCSpawn  *spawn = CCSpawn::create(upMove, noteRotate, fadeOut, NULL);
    label->runAction(spawn);
```

:13:我也试过这样新建一个项目把动作放进去试,是没有问题,但像我上面描述的就不行了,
我猜这该不会是COCOS的BUG吧:12:

CCNode貌似需要自己实现透明值改变相关的几个接口。继承cclayer试试看!

颜色类的 参数 需要 用 用 CCNodeRGBA

把你的ccsprite设置这两个属性
setOpacity(0);
setCascadeOpacityEnabled(true);