weird issue happened when removing and adding children of CCScene

platform: windows
cocos2d version: 2.0

I implemented my scene, whose function is basically play an animation.

I added the first page of the animation as a layer to the scene in onEnter(), and then create a schedule that would go to the next page in 2 seconds. The code is like,

void MyScene::onEnter()
{
    create a layer p for the first page;
    this->addChild(p);
    this->schedule(schedule_selector(MyScene::NextPage), 2.0f);
}

and the function NextPage is like,

void MyScene::NextPage()
{
    if (!end){
        this->unschedule(schedule_selector(MyScene::NextPage));
        this->removeAllChildrenWithCleanup(true);
        create a layer p for the next page;
        this->addChild(p);
        this->schedule(schedule_selector(MyScene::NextPage), 2.0f);
    }
    else
        finish;
}

So when running with this scene, it would call the onEnter() function firstly, played the first page of the animation, and call the NextPage() function in 2 seconds, in which the scene node removed the layer for the first page, and added the second one, and then play the third page in 2 seconds, and keep going, things seem good.

The result is the first page is played well, but the first page is drawed again when drawing the second one, the first two pages drawed when drawing the third one, and so on. However, I found the child layer node for the first page indeed was removed when calling this->removeAllChildrenWithCleanup(true) in debugging. Possibly I missed something on the functions called automatically behind when removing and adding children nodes, I can’t figure out what the cause could be, so any help would be appreciated.

turns out it’s running correctly, just the second page has some of the content of the first one, my bad.
thanks for no one replying.
case closed.