tableview cell上添加spine动画,滑动后到看不见,再滑动回来后,动画不动了。。。。。。。。。。。。。。。。。
cell重用机制,会直接删除,你的spine应该被remove掉才对。怎么还会显示呢?
有一个自己写的类继承自tableview。里面一个容器保存了添加在cell里的node。 在执行到tableCellAtIndex方法时,会从容器里拿出node添加到cell里
你把这个node拿出来了,它的父节点改变了,执行的动作自然暂停了。
建议你顺便保存一下动作的帧数,再次添加到cell中的时候,进行一下处理,然后按照上次播放的记录重新run,
我认为这样就可以了。
CCNode* pkNode = (CCNode*)m_cellList.objectAtIndex(idx);
if(pkNode)
{
pkNode->removeFromParentAndCleanup(false);
CCObject* pObj = NULL;
CCArray* pChildren = pkNode->getChildren();
CCARRAY_FOREACH(pChildren, pObj)
{
CCNode* pChild = (CCNode*)pObj;
pChild->resumeSchedulerAndActions();
}
cell->removeAllChildren();
cell->addChild(pkNode);
}
这样做不行
动画是被删掉了不是暂停了,你用resumeSchedulerAndActions肯定不行。同被坑中求解决
好吧,只能重新添加一遍。。。