貌似有个骨骼动画的bug

我用的是cocos2dx3.0。编辑器是1.3.0.1。
今天发现在动画编辑中制作的某些不循环的动作,播放到时间结束之后,部分骨骼会回到第一帧,另一部分则保持最后一帧的样子。
在win32和android中都会,ios上还没有测试。win32上有少量机器没有出现。
我稍微看了骨骼部分的计算,猜测可能是浮点数误差导致,不知道官方是否知道这个问题,有没有什么办法。

好吧,我自己发现了bug原因。
主要是因为那个骨骼在最后一帧隐藏了。然后在CCTween.cpp发现了这个函数:

void Tween::setBetween(FrameData *from, FrameData *to, bool limit)
{
do
{
if(from->displayIndex < 0 && to->displayIndex >= 0)
{
_from->copy(to);
_between->subtract(to, to, limit);
break;
}
else if(to->displayIndex < 0 && from->displayIndex >= 0)
{
_from->copy(from);
_between->subtract(to, to, limit);
break;
}

    _from->copy(from);
    _between->subtract(from, to, limit);
}
while (0);

if (!from->isTween)
{
    _tweenData->copy(from);
    _tweenData->isTween = true;
}

arriveKeyFrame(from);

}

上面的意思是如果骨骼从隐藏(from)变为可见(to),则一定会显示可见的那一帧(to)。无论中间是否有过度。
我感觉这样是有问题的,这个动画并不是循环的,他在最后一帧隐藏,这是合理的操作,但因为这样而被显示为第一帧的样子了。

希望官方能妥善处理这个问题。。。