CCArmature帧事件和移动事件不可以同时添加

在 cocos2d-x-2.2.2\samples\Lua\TestLua\Resources\luaScript\CocoStudioTest\CocoStudioArmatureTest\CocoStudioArmatureTest.lua 的781行下边添加一个移动事件

  armature:getAnimation():setFrameEventCallFunc(onFrameEvent)
  armature:getAnimation():setMovementEventCallFunc(function (armatureBack,movementType,movementID) print("ddddddddddd") end)  --新增

在帧事件的下边添加一个移动事件就会报错,出错位置如下

目前我没找到原因,请斑竹帮忙查看下

自己顶上去,没有别人遇到同样的问题吗?

同遇见这个问题,不知道什么时候被释放了,自己加个retain就不会出错,不懂······

把这个 scripting\lua\cocos2dx_support\lua_cocos2dx_cocostudio_manual.cpp文件
tolua_Cocos2dx_CCArmatureAnimation_setMovementEventCallFunc00函数
注释掉也可以
wrapper->autorelease();
希望得到官方的解决方案

没注释,怕内存泄露,所以多加retain和release

找到问题了

void CCArmatureAnimation::setUserObject(CCObject *pUserObject)

{

CC_SAFE_RETAIN(pUserObject);

CC_SAFE_RELEASE(m_pUserObject);

m_pUserObject = pUserObject;

}

两个事件都会调用setUserObject,但是只能存在一个m_pUserObject,会把上一个release,所以就出错了

多谢了,我看下

貌似是 5楼说的这个问题

binding 是cocos2dx 在做,我会反馈给他们

我 暂时 解决了 该问题, 先清除 setFrameEventCallFunc 事件监听, 再 重新注册setMovementEventCallFunc 事件监听 ,就可以了。