3.0rc0 3.0rc1 Armature 的bug

直接上代码
void BattleEffectLayer::showEffect()
{

Armature* tempEffect = Armature::create("effect1");
this->addChild(tempEffect);
tempEffect->setPosition(320,inter->getValue());
tempEffect->getAnimation()->playWithIndex(0);
tempEffect->getAnimation()->setMovementEventCallFunc(CC_CALLBACK_0(BattleEffectLayer::effectOver,this,std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));

}
void BattleEffectLayer::effectOver(Armature *armature, MovementEventType movementType, const std::string& movementID)
{
if (movementType == LOOP_COMPLETE)
{

//    armature->getAnimation()->stop();    
//    armature->stopAllActions();

    this->removeChild(armature);
    //this->removeChild(armature);
    //armature = nullptr;
//    this->removeChild(armature);
    //this->removeChild(armature);
    //armature->setVisible(false);


//    armature->getAnimation()->stop();

    


}

}
只要从显示表中删除armature 就会报内存 出错的问题 个人感觉 armature 删除了 但是armature中的动画控制 还在运行 之前有哥们说用removeFromParentAndCleanup()这个函数就行了。亲测还是不行 高手有碰到的吗 有什么方法 给支个招3.0rc0 3.0rc1都测试了 还是不行

难道没人碰到过吗 很容易出现的啊。。。。

我也遇到了,顶上去~:8:

标记下!:7:

就这样沉了。。。。顶上去啊

我也遇到了3.0rc0就出现这样的bug了,以前版本都没为题的,现在只能先隐藏,都不敢删除了

版主啥的也不出来 解释一下 真么大的bug啊。。。

此问题已反馈,请稍候哦亲。。。 :14:

顶上去,不知道解决了没?

希望可以尽快解决下,好像是没有删除update的标记

我今天在github pull了 develop的最新代码,没有出现这个问题呢。
不知道是不是cocos2dx 的问题,你们pull一下最新的代码测试下看下这个问题还在么

取了cocos2d-x-develop.zip最新的还是这个情况,不知道什么时候可以解决,
_VARIADIC_EXPAND_P1_2X(_CLASS_FUNC_CLASS_2X, , , , )

void ArmatureAnimation::update(float dt)
{
ProcessBase::update(dt);

for (const auto &tween : _tweenList)
{
    tween->update(dt);
}

while (_frameEventQueue.size() > 0)
{
    FrameEvent *event = _frameEventQueue.front();
    _frameEventQueue.pop();

    _ignoreFrameEvent = true;
    
    if(_frameEventTarget)
    {
        (_frameEventTarget->*_frameEventCallFunc)(event->bone, event->frameEventName, event->originFrameIndex, event->currentFrameIndex);
    }
    
    if (_frameEventListener)
    {
        _frameEventListener(event->bone, event->frameEventName, event->originFrameIndex, event->currentFrameIndex);
    }
    
    
    _ignoreFrameEvent = false;

    CC_SAFE_DELETE(event);
}

while (_movementEventQueue.size() > 0)
{
    MovementEvent *event = _movementEventQueue.front();
    _movementEventQueue.pop();
    
    if(_movementEventTarget)
    {
        (_movementEventTarget->*_movementEventCallFunc)(event->armature, event->movementType, event->movementID);
    }
    
    if (_movementEventListener)
    {
        _movementEventListener(event->armature, event->movementType, event->movementID);
    }
    
    CC_SAFE_DELETE(event);//播放后删除时,这里还能走到,就崩掉了
}

}

develop 包也试验了下 还是不行

remove以后,马上在add一个ui ,就随机出现错误了。
Armature 的this变成了Text了

3.1这个问题还是存在呀?各位怎么解决的?

setMovementEventCallFunc中参数的形式因该怎么写啊?我觉得是这个问题

我也遇到这个问题,不知道该怎么解决?求大神!