CCNode::stopAllActions() ??致 CCBAnimationManager::mSequences 被 NULL ???

  • 本帖最后由 snowcrow0802 于 2013-5-4 16:31 编辑 *

我?在在? CocosDragon 的?例
我用 C++ ?用 JS

我?在 Dragon 碰到炸??要??作,
animationManager->runAnimationsForSequenceNamed(“Hit”);的?候,
?程式跑到CCBAnimationManager::runAnimationsForSequenceIdTweenDuration
?行 mRootNode->stopAllActions(); ?
?面的 ccArrayRemoveAllObjects(pElement->actions);
??致 CCBAnimationManager::mSequences 被 NULL

所以接下?的要抓?作?CCBSequence* CCBAnimationManager::getSequence(int nSequenceId)程式就停掉了

?是 engine 的 bug??
?是我哪??? ?致????
我?得在 ccArrayRemoveAllObjects(pElement->actions) ???只是要 清空 目前的使用的actions清?但他?? action 的基本?料都一起清空

  • 本帖最后由 snowcrow0802 于 2013-5-7 00:02 编辑 *

我?於解?了…

因?我在 取得 CCBAnimationManager ?
?有 retain

所以造成 在??作? m_uReference =0 被 delete 了…

都?人回我??.. 好寂寞喔…

我上?了code 有需要?考的人就自行下?吧
?有什?特?的地方
就只是把 zynga 的教?? objective-c 改成 c++而已

我?了 TestCpp 的 cocosbuilder 播?作的?例, 是正常的,
所以功能?定是???,

而且?法上最大的不同,
是 TextCpp 是在 ccbi都?完後,
才取出 pCCBReader->getAnimationManager()

但我的 Dragon 是在 DragonLoader::parseProperties
就取出 pCCBReader->getAnimationManager()

但我??做有他的苦衷,
因?我 Dragon.ccbi 是包在 Level.ccbi 中
所以我? Level.ccbi ?
?部就?自??我把 Dragon.ccbi ?理好
所以我的 Dragon 只好在 Loader??手?..

我??在 CCBReader ???
就?自?每? CCNode->setUserObject( CCBAnimationManager )

只是事後又? CCNode->setUserObject( NULL )
把它清掉

我?在??把 CCNode->setUserObject( NULL ) 打掉
就可以正常?作了

只是?算是更改原始?的行?
我不???是好?法

想??大家是否有更好的?法?

  • 本帖最后由 snowcrow0802 于 2013-5-5 15:43 编辑 *

好像是整? CCBAnimationManager 都?掉的?子?
整??案太大
我只放 code 和 ccb
希望有人?我看一下
看是哪?出了??

我已?想不出?法了{:soso_e109:}