Sequence action included DelayTime not work well

Here is my code.

static float fInitDelay = 1.0f;

bool CMyScene::init()
{
    ...

    m_pDelayTime = DelayTime::create(fInitDelay);

    m_pSeq = Sequence::create(
        m_pDelayTime,
        CallFunc::create(CC_CALLBACK_0(CMyScene::End, this)),
        nullptr
    );

    m_pSeq->retain();

    this->runAction(m_pSeq);
}

void CMyScene::onKeyPressed(EventKeyboard::Keycode _keyCode, Event* _pEvent)
{
    // toggle delay time
    float fNewDuration = (m_pDelayTime->getDuration() == 1.0f) ? 2.0f : 1.0f;
    m_pDelayTime->setDuration(fNewDuration);
    
    this->runAction(m_pSeq);
}

void CMyScene::End()
{
    CCLOG("callback");
}

If I press some key.
When ‘fNewDuration’ value is set to 1.0f, callback works well.
But, ‘fNewDudration’ value is set to 2.0f, callback was not call.

And, If I change ‘fInitDelay’ value to 2.0f.
Any value of ‘fNewDuration’ works well.

Is it some Sequence bug?
I use cocos2d-x v3.9.

I want to do this because I do not want to create an action instance every time.
Thanks…

I solved.
This is a problem that occurs because the durations of DelayTime and Sequence do not match.
If you change the duration of Sequence, it works well. :slight_smile:

m_pDelayTime->setDuration(fNewDuration);
m_pSeq->setDuration(fNewDuration);