CCSpawnで複数アクションを動かし、片方だけ止めようとしたら失敗した話

複数アクションを動かして、途中で片方だけ中断したいと思い、次のコードを書きました。

CCMoveBy *mb = CCMoveBy::create(0.15f, ccp(30.0f, 0.0f));
CCFadeTo *ft = CCFadeTo::create(0.15f, 225);
ft->setTag(1);
CCSpawn *sp = CCSpawn::createWithTwoActions(mb, ft);

runAction(sp);

別の場所で

stopActionByTag(1);

CCFadeToのアクションだけ止めようとしたのですが、うまく行かず。

色々調べてみた結果、どうも片方だけ止める場合はCCSpawnでアクションを合成してはいけない模様。

CCMoveBy *mb = CCMoveBy::create(0.15f, ccp(30.0f, 0.0f));
CCFadeTo *ft = CCFadeTo::create(0.15f, 225);
ft->setTag(1);

runAction(mb);
runAction(ft);

別の場所で

stopActionByTag(1);

これで無事止まってくれました。