cocod2d-x--关于场景切换,CCAction未执行完,仍持有引用造成内存泄漏
来源:互联网 发布:淘宝翻译价格 编辑:程序博客网 时间:2024/05/18 03:00
情况如下:
游戏内战斗界面战斗胜利,弹出胜利窗口,点击窗口中的下一关按钮切换到加载资源场景,
此时游戏处于暂停状态,所有CCAction都处于暂停状态,切换场景时,战斗场景中还有CCAction
未执行完,仍持有执行CCAction对象的一个引用,切换场景后引用不为0,则造成内存泄漏
自己定义每个Scene的生命周期,其父类如下:
#ifndef SCREEN_H#define SCREEN_H#include "cocos2d.h"using namespace cocos2d;namespace giant {class Screen : public CCScene {protected:int m_width;int m_height;protected:Screen(int width, int height);public:virtual void show() = 0;virtual void close() = 0;virtual void pause() = 0;virtual void resume() = 0;};}#endif
游戏场景进入时调用show(),初始化资源
游戏暂停调用pause(),暂停场景中的更新,包括CCAction
游戏从暂停恢复调用resume(),恢复之前所有暂停的更新
游戏场景退出调用close(),销毁视图,释放内存
调用pause()时执行以下代码:
m_pActionSet = CCDirector::sharedDirector()->getActionManager()->pauseAllRunningActions(); m_pActionSet->retain();
调用resume()时执行以下代码:
CCDirector::sharedDirector()->getActionManager()->resumeTargets(m_pActionSet); m_pActionSet->release();
调用close()时执行以下代码:
CCActionManager *pActionManager = CCDirector::sharedDirector()->getActionManager(); CCSetIterator iter; for (iter = m_pActionSet->begin(); iter != m_pActionSet->end(); ++iter) { pActionManager->removeAllActionsFromTarget(*iter); } m_pActionSet->release();
通过close()里的操作可以释放CCAction中的引用
0 0
- cocod2d-x--关于场景切换,CCAction未执行完,仍持有引用造成内存泄漏
- cocod2d-x--关于场景切换,CCAction未执行完,仍持有引用造成内存泄漏
- cocod2d-x--关于场景切换,CCAction未执行完,仍持有引用造成内存泄漏
- iOS容易造成循环引用的三种场景,(循环引用),内存泄漏
- PHP对象递归引用造成内存泄漏
- 关于造成内存泄漏的一些原因
- Android内存泄漏(线程造成的内存泄漏与资源未关闭造成的内存泄漏)
- 匿名内部类持外部引用造成内存泄漏问题
- 匿名内部类持外部引用造成内存泄漏问题
- 避免长期持有了一个Context的引用造成内存泄露
- 非静态内部类持有外部类的引用 使用不慎会造成内存溢出
- 非静态的内部类会持有外部类的一个隐式引用 造成内存泄露
- HashMap内存泄漏场景
- IBOutlet造成的内存泄漏
- cdbexception造成的内存泄漏
- MVP造成的内存泄漏
- quick-cocos2d-x 场景切换时node事件执行顺序
- cocos2d-x场景切换时内存过高导致crash 解决方法
- Qt多线程编程(4)——使用线程中自定义的信号和槽进行通信
- mysql错误位置
- Centos6.5 制作局域网http源
- UVa11988 Broken Keyboard (a.k.a. Beiju Text)(链表 水)
- Mysql查询优化
- cocod2d-x--关于场景切换,CCAction未执行完,仍持有引用造成内存泄漏
- Java Random经典例子【猜拳游戏】
- 《链接,装载和库》笔记
- ACM Steps之一(Section One)
- 算法实践-最大数量活动选择-贪心算法
- DEDECMS全局变量覆盖漏洞科普
- 频谱随笔20140322
- 我的IT成长路——为梦想扬帆起航
- CF C. Bear and Prime Numbers 筛选素数并计算