cocos2d-x的CCDirector::replaceScene(CCScene *pScene) 使用注意
来源:互联网 发布:网络招聘平台 编辑:程序博客网 时间:2024/05/02 19:49
昨晚在捕鱼切换场景时发现会出现内存不足的现象,看了下代码发现了个问题。我们先看看代码
[[CCDirector sharedDirector] runWithScene:[ SceneA scene]];[[CCDirector sharedDirector] replaceScene:[ SceneB scene]];
假设CCDirector以SceneA为起始场景,现在要替换为SceneB。那么:
将会触发一系列的方法被调用,如下:
1. scene:
2. init:
3. onEnter:
4. Transition 发生.
5. onExit:
6. onEnterTransitionDidFini
7. dealloc:
当一个scene被搬上“台面”,它会收到onEnter,SceneB会收到onExit,最后交替完成在台面上的SceneA收到onEnterTransitionDidFini
再看看cocos2d-x的源代码
void CCDirector::replaceScene(CCScene *pScene){ assert(pScene != NULL); unsigned int index = m_pobScenesStack->count(); m_bSendCleanupToScene = true; m_pobScenesStack->replaceObjectAtIndex(index - 1, pScene); m_pNextScene = pScene; // replaceScene赋值m_pNextScene,以致drawScene会触发setNextScene函数。} void CCDirector::setNextScene(void){ ···; if (! (newSceneType & ccTransitionScene)) { if (m_pRunningScene) { m_pRunningScene->onExit(); //即 5. onExit: SceneA } } ···;}
释放一些new出来的对象,应该在onExit()里面delete掉。之前不知道原理,new出来的对象在destroy()里面delete,结果就是运行时弹窗口了…
- cocos2d-x的CCDirector::replaceScene(CCScene *pScene) 使用注意
- cocos2d-x CCDirector管理CCScene
- cocos2d-x CCDirector管理CCScene
- cocos2d-x中的无法使用replaceScene跳转的问题
- cocos2d-x CCDirector管理CCScene-沈大海cocos2d-x教程11
- Cocos2d-x之CCScene场景切换效果的使用
- cocos2d-x初识 CCDirector类的认识
- 【cocos2d-x】CCDirector
- cocos2d-x CCScene场景的切换
- 【cocos2d-x】CCScene
- 【Cocos2D学习】Cocos2d-x之CCScene场景切换效果的使用
- [cocos2d-x] --- CCDirector类详解
- cocos2d-x学习之CCDirector
- cocos2d-x教程之CCDirector
- [cocos2d-x] - CCDirector种详解
- Cocos2d-x之 CCDirector-->CCDisplayLinkDirector
- Cocos2d-x Scene生命周期 pushScene和replaceScene
- cocos2d-x replacescene 内存变大问题~
- Parcelable
- android 打包
- 顺序存储结构的表、堆栈、和队列的基本概念
- 搭建本机使用的LXR来阅读Linux Kernel
- C#正则表达式
- cocos2d-x的CCDirector::replaceScene(CCScene *pScene) 使用注意
- Fix some problem to build android2.3 on ubuntu11.10 32bit
- 利用Bundle实现Android Activity间消息的传递
- 《代码优化:有效使用内存》读书笔记(二)——优化技巧之展开循环
- 伙伴算法分配过程
- 关于HTML的二级分类代码
- CSS命名规范
- 1026 notes for thinking in c++(127-137)
- javax.mail使用