cocos2dx 在多场景切换中,生命周期打印的效果如下:
从 MyScene 场景进入,切换到 HelloWorld 场景,再推出 HelloWorld 场景,流程图(见附件,,,,不知道怎么上传图片,不能粘贴图,郁闷。。。)
打印 log 如下,
MyScene 代码:
MyScene::MyScene() {
CCLog("wangss------------->MyScene");
}
MyScene::~MyScene() {
CCLog("wangss------------->~~MyScene");
}
void MyScene::onEnter() {
CCLog("wangss------------->onEnter");
Layer::onEnter();
}
void MyScene::onEnterTransitionDidFinish() {
CCLog("wangss------------->onEnterTransitionDidFinish");
}
void MyScene::onExit() {
CCLog("wangss------------->onExit");
Layer::onExit();
}
void MyScene::onExitTransitionDidStart() {
CCLog("wangss------------->onExitTransitionDidStart");
}
void MyScene::cleanup() {
CCLog("wangss------------->cleanup");
}
Scene* MyScene::createScene() {
CCLog("wangss------------->createScene");
auto scene = Scene::create();
auto layer = MyScene::create();
scene->addChild(layer);
return scene;
}
bool MyScene::init() {
CCLog("wangss------------->init");
if (!Layer::init()) {
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
// spriteTest(visibleSize);
// labelTest(visibleSize);
// menuTest(visibleSize);
// languageTest(visibleSize);
// scheduleTest(visibleSize);
// scaleNineSpriteTest(visibleSize);
// shujujiegouTest(visibleSize);
// actionTest(visibleSize);
// actionCallBackTest(visibleSize);
// frameAnimationTest(visibleSize);
// actionEaseTest(visibleSize);
// progressActionTest(visibleSize);
lifeCycleTest(visibleSize);
return true;
}
HelloWorld 代码:
HelloWorld::HelloWorld() {
CCLog("wangss------HelloWorld------->HelloWorld");
}
HelloWorld::~HelloWorld() {
CCLog("wangss------HelloWorld------->~~HelloWorld");
}
void HelloWorld::onEnter() {
CCLog("wangss------HelloWorld------->onEnter");
Layer::onEnter();
}
void HelloWorld::onEnterTransitionDidFinish() {
CCLog("wangss------HelloWorld------->onEnterTransitionDidFinish");
}
void HelloWorld::onExit() {
CCLog("wangss------HelloWorld------->onExit");
Layer::onExit();
}
void HelloWorld::onExitTransitionDidStart() {
CCLog("wangss------HelloWorld------->onExitTransitionDidStart");
}
void HelloWorld::cleanup() {
CCLog("wangss------HelloWorld------->cleanup");
}
Scene* HelloWorld::createScene()
{
CCLog("wangss------HelloWorld------->createScene");
// 'scene' is an autorelease object
auto scene = Scene::create();
// 'layer' is an autorelease object
auto layer = HelloWorld::create();
// add layer as a child to scene
scene->addChild(layer);
// return the scene
return scene;
}
11-02 15:09:40.290: D/cocos2d-x debug info(23066): wangss------------->createScene
11-02 15:09:40.300: D/cocos2d-x debug info(23066): wangss------------->MyScene
11-02 15:09:40.300: D/cocos2d-x debug info(23066): wangss------------->init
11-02 15:09:40.320: D/cocos2d-x debug info(23066): wangss------------->onEnter
11-02 15:09:40.320: D/cocos2d-x debug info(23066): wangss------------->onEnterTransitionDidFinish
11-02 15:09:43.640: D/cocos2d-x debug info(23066): wangss------HelloWorld------->createScene
11-02 15:09:43.640: D/cocos2d-x debug info(23066): wangss------HelloWorld------->HelloWorld
11-02 15:09:43.640: D/cocos2d-x debug info(23066): wangss------HelloWorld------->init
11-02 15:09:43.760: D/cocos2d-x debug info(23066): wangss------------->onExitTransitionDidStart
11-02 15:09:43.760: D/cocos2d-x debug info(23066): wangss------HelloWorld------->onEnter
11-02 15:09:44.940: D/cocos2d-x debug info(23066): wangss------------->onExit
11-02 15:09:44.940: D/cocos2d-x debug info(23066): wangss------HelloWorld------->onEnterTransitionDidFinish
11-02 15:09:44.940: D/cocos2d-x debug info(23066): wangss------------->cleanup
11-02 15:09:44.940: D/cocos2d-x debug info(23066): wangss------------->~~MyScene
11-02 15:09:46.220: D/cocos2d-x debug info(23066): wangss------HelloWorld------->onExit
11-02 15:09:46.220: D/cocos2d-x debug info(23066): wangss------HelloWorld------->cleanup
11-02 15:09:46.220: D/cocos2d-x debug info(23066): wangss------HelloWorld------->~~HelloWorld
附件:http://down.51cto.com/data/2365029