是我在退出时少写了点什么吗?
这个应该是个bug,发现是在一处定时器中的回调会崩溃,但是还不知道原因,简单的注释掉回调(没发现回调有什么用)可以不蹦 但是又不知道会不会内存泄露什么的 所以干脆用自定义动画了
这个是设计上的问题,是因为动画加载以后是加载到了全局的cocostudio::ActionManagerEx 里面了, 你场景释放掉,但是cocostudio::ActionManagerEx里面保存有第一次加载动画的野指针, 第二次进来以后由于cocostudio::ActionManagerEx里面已经有此动画名的动画,不会再添加到 cocostudio::ActionManagerEx的map里了, 你再播放的时候必然出错,
说说我的解决方法:
我给cocostudio::ActionManagerEx 加入了一个函数:
void ActionManagerEx::releaseActionsByJsonName(const char* jsonName) // 按照文件名去释放动画,
{
auto iterator = _actionDic.find(jsonName);
if (iterator == _actionDic.end())
{
return ;
}
auto actionList = iterator->second;
for (int i = 0; i < actionList.size(); i++)
{
ActionObject* action = actionList.at(i);
action->stop();
}
_actionDic.erase(iterator);
actionList.clear();
}
我是在场景的析构函数里面释放到这个场景用过的Json文件的动画
cocostudio::ActionManagerEx::getInstance()->releaseActionsByJsonName(g_strJsonFileName.c_str());
这样设计个人感觉挺蛋疼的,希望每个json对应一个自己的动画管理器, 不要把全部的动画弄到一个全局的动画管理器中

这个才是正道,希望官方能吸收这个函数,否则只提供一个全局的releaseActions实在蛋疼
版主,cocos2dx 3.2 这个问题解决了吗?