CCNode如何变换父亲节点parent
2013-09-04 00:23
316 查看
CCNode更换父亲节点,看似很简单,但其实没有那么简单
最初,我的想法就是,直接从父亲节点移除自己,再添加到新的父亲节点就OK
node->removeFromParent();
newParent->addChild(node);
但是后来发现,这样会把node释放掉
考虑了下,估计是因为cleanup掉了,所以又试了下面的方法
node->removeFromParentAndCleanup(false);
newParent->addChild(node);
但是发现还是会把node释放掉,无论怎么做都不行,甚至下面的方法也不行
oldParent->removeChild(node);//oldParent->removeChild(node,false); //oldParent->removeChildByTag(nodeTag);//oldParent->removeChildByTag(nodeTag, false);
newParent->addChild(node);
最终找到的可行方案是:
node->getParent()->getChildren()->removeObject(node,false);
node->setParent(NULL);
newParent->addChild(node);
node->release();
最初,我的想法就是,直接从父亲节点移除自己,再添加到新的父亲节点就OK
node->removeFromParent();
newParent->addChild(node);
但是后来发现,这样会把node释放掉
考虑了下,估计是因为cleanup掉了,所以又试了下面的方法
node->removeFromParentAndCleanup(false);
newParent->addChild(node);
但是发现还是会把node释放掉,无论怎么做都不行,甚至下面的方法也不行
oldParent->removeChild(node);//oldParent->removeChild(node,false); //oldParent->removeChildByTag(nodeTag);//oldParent->removeChildByTag(nodeTag, false);
newParent->addChild(node);
最终找到的可行方案是:
node->getParent()->getChildren()->removeObject(node,false);
node->setParent(NULL);
newParent->addChild(node);
node->release();
相关文章推荐
- CCNode如何变换父亲节点parent
- CCNode如何变换父亲节点parent
- 百度编辑器 如何获取光标位置与不同帧内的节点
- 用jQuery如何实现删除子节点和winform label显示数据分页
- 看 nova-scheduler 如何选择计算节点 - 每天5分钟玩转 OpenStack(27)
- Android 平台 Button控件如何实现按下效果 (变换风格)
- 如何通过cmdline获取panel型号的dtsi文件节点(qcom,lcd,id)
- 存在父id的情况下,如何查询是否是最终叶子节点
- Spark如何使用Akka实现进程、节点通信的简明介绍
- jquery 获取所有兄弟节点、父亲兄弟的子节点以及自动触发事件
- 只给出链表某节点的的指针,如何删除它(不允许遍历)
- 如何C#中实现在TreeView查找某一节点
- JavaScript中访问节点对象的方法有哪些如何使用
- 浅析dev目录下设备文件mknod节点gid,uid和mode的如何方便设置
- CF 337E(Divisor Tree-枚举树节点的父亲)
- 【算法分析】如何理解快慢指针?判断linked list中是否有环、找到环的起始节点位置。以Leetcode 141. Linked List Cycle, 142. Linked List Cycle II 为例Python实现
- Android 5.0 SEAndroid下如何获得对一个内核节点的访问权限
- 如何在MathType上输入傅里叶变换的符号
- 在centos 5上如何配置rsh,rcp,scp多节点互通_无须密码
- Spark问题7之如何让节点执行指定的core数