Armature 无法正确释放,求范例。

[size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]Armature 对象创建后  播放正常,但是请问如何释放?[/backcolor][/color][/font][/size]
[font=helvetica neue, helvetica, stheiti, 微软雅黑, 黑体, arial, tahoma, sans-serif, serif][color=#333333][size=2]
[/size][/color][/font]
[list=1][li][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]  p[/backcolor][/color][/font][/size][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]Armature [/backcolor][/color][/font][/size][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]->removeFromParent(); [/backcolor][/color][/font][/size][/li][li][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]  p[/backcolor][/color][/font][/size][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]Armature [/backcolor][/color][/font][/size][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]->removeFromParentAndCleanup(true); [/backcolor][/color][/font][/size][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff] [/backcolor][/color][/font][/size][/li][li][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff] [/backcolor][/color][/font][/size][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]p[/backcolor][/color][/font][/size][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]Armature [/backcolor][/color][/font][/size][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]->getAnimation()->setFrameEventCallFunc(NULL,NULL);[/backcolor][/color][/font][/size][/li][li][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]  p[/backcolor][/color][/font][/size][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]Armature [/backcolor][/color][/font][/size][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]->getAnimation()->stop(); [/backcolor][/color][/font][/size][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff] [/backcolor][/color][/font][/size][/li][li][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]  cocostudio::ArmatureDataManager::getInstance()->removeArmatureFileInfo("tauren/tauren.ExportJson"); [/backcolor][/color][/font][/size][size=2][font=helvetica neue][color=#333333][backcolor=#ffffff] [/backcolor][/color][/font][/size][/li][/list]

[size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]以上方法基本各种搭配组合都尝试过了,无一成功。[/backcolor][/color][/font][/size]
[size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]异常各异。[/backcolor][/color][/font][/size]
[size=2][font=helvetica neue][color=#333333][backcolor=#ffffff]
[/backcolor][/color][/font][/size]这个bug 我查了记录 3.0版本就已经有反馈了。3.2 版本还是有问题…

你好,你想要的释放什么呢?默认是自动内存管理对象的。add后remove就移除了。不过纹理以及单例是需要单独释放的。

Armature add 后,
按照普通节点的移除方式, 调用 removeFromParent() 会导致程序异常。

removeFromParent() 这句不会直接导致异常。
是在下一次update时会报错。

我在尝试上面提到的几个不同的方法时,异常位置不一样。所以就没付异常堆栈代码。 不过这个 bug是必现的,反馈给开发团队尽快改一下吧。

论坛里不只我一个人提到了。 希望尽快修复。

很显然你没理解cocos2dx的内存管理方式,你都removeFromParent了,下一帧你再访问这个东西,当然会访问不到,因为已经release掉了。

— Begin quote from ____

引用第3楼hot119119163于2014-06-30 11:50发表的 回 2楼(xdxttt) 的帖子 :
很显然你没理解cocos2dx的内存管理方式,你都removeFromParent了,下一帧你再访问这个东西,当然会访问不到,因为已经release掉了。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=210316&pid=992090

— End quote

难道是我表达不清楚?

我的意思是说,其他 对象调用removeFromParent(); 都能够正确释放。

http://www.cocoachina.com/bbs/read.php?tid=210316 调用removeFromParent() 后会导致程序异常崩溃。