检查下2.2.3的Armature吧!

2.2.2的
void CCProcessBase::gotoFrame(int frameIndex)
{
m_iCurFrameIndex = frameIndex;
pause();
}

2.2.3修改成这样了
void CCProcessBase::gotoFrame(int frameIndex)
{
if (m_eLoopType == ANIMATION_NO_LOOP)
{
m_eLoopType = ANIMATION_MAX;
}
else if (m_eLoopType == ANIMATION_TO_LOOP_FRONT)
{
m_eLoopType = ANIMATION_LOOP_FRONT;
}

m_iCurFrameIndex = frameIndex;
m_iNextFrameIndex = m_iDurationTween;

}

这导致bug你们没发现么?
2.2.3动画播放的时候,必定调用void CCArmatureAnimation::gotoAndPlay(int frameIndex)
其内部调用void CCProcessBase::gotoFrame(int frameIndex)
然后将m_iNextFrameIndex = m_iDurationTween; 这里m_iDurationTween 就是总帧数。
结果很奇怪啊,这里面,3个值都是总帧数,m_iNextFrameIndex ,m_iDurationTween ,m_iRawDuration,这简直把我搞糊涂了

难道是我下的版本不对?

另外,我大概知道我的问题在哪里了,以前2.2.2是没有 gotoAndPlay,我是自己实现的,我实现的很简单
//2.2.2
/m_pArmature->getAnimation()->gotoFrame(frameIndex);
resumeSporeAction();
/
//2.2.3
m_pArmature->getAnimation()->gotoAndPlay(frameIndex);
结果改成调用就出问题了。

感谢您的反馈。请问这些在播放上是否有影响呢?获取在使用上影响了哪些?