cocos2d-x-2.*关于addTargetedDelegate的两个坑
2014-07-04 15:42
253 查看
1.CCLayer在构造函数里面
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0,false);
因为这是一个强引用,所以在场景切换的时候,不会调用该CCLayer的析构函数,造成内存泄露
解决办法是在onExit的时候调用
CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
这样CCLayer的析构函数就会执行了!
注:据说cocos2d-x-3.* 以后,addTargetedDelegate变成了弱引用,就没这个问题了!
2. /article/4885909.html
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0,false);
因为这是一个强引用,所以在场景切换的时候,不会调用该CCLayer的析构函数,造成内存泄露
解决办法是在onExit的时候调用
CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
这样CCLayer的析构函数就会执行了!
注:据说cocos2d-x-3.* 以后,addTargetedDelegate变成了弱引用,就没这个问题了!
2. /article/4885909.html
相关文章推荐
- cocos2d 学习笔记 - 【转载】cocos2dx 不要直接在 onEnter 里面 addTargetedDelegate (或 addStandardDelegate)
- cocos2d-x touches事件中使用 addTargetedDelegate 的潜在bug
- 一篇好文章关于onEnter与addTargetedDelegate
- cocos2d-x touches事件中使用 addTargetedDelegate 的潜在bug
- cocos2d ccLayer响应触摸事件方法:CCStandardTouchDelegate 与 CCTargetedTouchDelegate
- addTargetedDelegate:self 中的 swallowsTouches
- cocos2dx 不要直接在 onEnter 里面 addTargetedDelegate (或 addStandardDelegate)
- 基础知识提问:关于HashTable和List两个容器Add改变了属性的同一对象的问题
- Cocos2d-x之Touch事件处理机制 提供两种触摸事件处理机制:CCStandardTouchDelegate和CCTargetedTouchDelegate。
- addTargetedDelegate:self 中的 swallowsTouches
- drupal7 关于drupal_add_js介绍两个好的参考文档, (php向js中传值)
- c#关于Delegate最简单的例子:两个窗体间的消息传递
- Cocos2dx的addTargetedDelegate方法的参数
- cocos2d ccLayer响应触摸事件方法:CCStandardTouchDelegate 与 CCTargetedTouchDelegate
- addTargetedDelegate:self中的swallowsTouches
- addTargetedDelegate:self中的swallowsTouches
- cocos2d3.8.1 cache->addSpriteFramesWithFile("Horse/horse1.plist") 无法加载plist,修改为两个参数运行通过
- cocos2dx 不用直接在 onEnter 里面 addTargetedDelegate (或 addStandardDelegate)
- c#关于Delegate最简单的例子:两个窗体间的消息传递
- cocos2dx 不要直接在 onEnter 里面 addTargetedDelegate (或 addStandardDelegate)