Sequence动画问题

CCMoveBy* mb1=CCMoveBy::create(duration0.3,ccp(xDelta0.3,yDelta*0.3));
mb1->setTag(QG_CARD_ACTION_TAG_TRANSITION-1);

CCMoveBy* mb2=CCMoveBy::create(duration,ccp(xDelta0.7,yDelta0.7));
mb2->setTag(QG_CARD_ACTION_TAG_TRANSITION_FINISH);

CCCallFuncO* callFunOne=CCCallFuncO::create(target,callFunc,mb1);

CCCallFuncO* callFunTwo=CCCallFuncO::create(target,callFunc,mb2);

CCScaleBy* sb=CCScaleBy::create(duration,scaleFactor);

CCSequence* res=CCSequence::create(mb1,callFunOne,mb2,callFunTwo,sb,NULL);

为什么这样的执行序列,只有callFunOne执行了

是不是在第一个回调函数中做了停止的操作了呢。我写了个一个这样是可以的。


// on "init" you need to initialize your instance
bool HelloWorld::init()
{ 
    if ( !CCLayer::init() )
    {
        return false;
    }
     

    CCSprite* sprite = CCSprite::create("CloseNormal.png");
    sprite->setPosition(ccp(50,50));
    this->addChild(sprite);

    CCMoveBy* mb1 = CCMoveBy::create(1.5f,ccp(100,100));
    CCMoveBy* mb2 = CCMoveBy::create(1.5f,ccp(150,150));

    CCCallFuncO* callFunOne = CCCallFuncO::create(sprite,
        callfuncO_selector(HelloWorld::testCallfunc),mb1);

        CCCallFuncO* callFunTwo = CCCallFuncO::create(sprite,
        callfuncO_selector(HelloWorld::testCallfunc),mb2);

        CCScaleBy* sb = CCScaleBy::create(1.5f,1,0.5f);
        CCSequence* seq = CCSequence::create(mb1,callFunOne,mb2,callFunTwo,sb,NULL);
        sprite->runAction(seq);
    return true;
}

void HelloWorld::testCallfunc(CCObject* pSender){
    CCLOG("wo bei diao yong le");
}

回调执行了两次。也就是 callFunOne和callFunTwo。

问题找到了,call第一个的时候,node被删除了