mainloop循环时候在build webmobile后出现bug

  • Creator 版本: 2.3.3

  • 目标平台: web-mobile

  • 详细报错信息,包含调用堆栈:

264.RenderFlow.render (render-flow.js:240)
render (index.js:179)
mainLoop (CCDirector.js:1006)
callback (CCGame.js:651)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)
requestAnimationFrame (async)
callback (CCGame.js:645)

  • 重现方式:场景有mask进不去 关掉了后 进去了 还是会报错 循环导致卡死

  • 出现概率:100%

RenderFlow.visitRootNode = function (rootNode) {
RenderFlow.validateRenderers();

_cullingMask = 1 << rootNode.groupIndex;

if (rootNode._renderFlag & WORLD_TRANSFORM) {
    _batcher.worldMatDirty ++;
    rootNode._calculWorldMatrix();
    rootNode._renderFlag &= ~WORLD_TRANSFORM;

    flows[rootNode._renderFlag]._func(rootNode);

    _batcher.worldMatDirty --;
}
else {
    flows[rootNode._renderFlag]._func(rootNode); //是不断进入到这里  如果去掉就无法加载 。看了半天大概是明白如果需要更新才进入到这里 这应该是主节点 上面的逻辑是子节点对吗 ? 没有深入了解过cos-js源码 求大佬 。

这里的代码没有问题 那应该是哪里更新_renderFlag的时候出错了 所以把mask禁用 然后可以进去了 但是还是会报错 场景节点较多 无从下手
}
};