2.3.0 删除带有mask的节点时报错

  • Creator 版本:2.3.0

  • 目标平台: 模拟器

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

 Simulator: ERROR: Uncaught TypeError: Cannot read property '0' of null, location: jsb-adapter/jsb-engine.js:0:0
    STACK:
    [0]cc.PrivateNode._posDirty@jsb-adapter/jsb-engine.js:5687
    [1]disableRender@src/cocos2d-jsb.js:27427
    [2]314.RenderFlow.validateRenderers@src/cocos2d-jsb.js:46919
    [3]RenderFlow.render@jsb-adapter/jsb-engine.js:5848
    [4]render@src/cocos2d-jsb.js:46730
    [5]mainLoop@src/cocos2d-jsb.js:17540
    [6]callback@src/cocos2d-jsb.js:17780
    [7]tick@jsb-adapter/jsb-builtin.js:2156
    [ERROR] (/Users/nantas/jenkins/workspace/Creator_2D/cocos2d-x-lite/mac/cocos2d-x-lite/cocos/scripting/js-bindings/jswrapper/v8/Object.cpp, 562): Invoking function (0x7f853041bca0) failed!
        at HTMLElement.print-simulator-log (/Applications/CocosCreator.app/Contents/Resources/app.asar/editor/builtin/scene/panel/messages/scene.js:1:1608)
        at Object.e._dispatch (/Applications/CocosCreator.app/Contents/Resources/app.asar/editor-framework/lib/renderer/panel.js:1:1876)
        at EventEmitter.<anonymous> (/Applications/CocosCreator.app/Contents/Resources/app.asar/editor-framework/lib/renderer/ipc.js:1:2952)
        at EventEmitter.emit (events.js:194:13)
        at EventEmitter.emit (domain.js:469:20)
        at EventEmitter.topLevelDomainCallback (domain.js:124:23)
  • 重现方式:运行所给demo,点击中心的button

  • 之前哪个版本是正常的 :2.2.1

  • 编辑器操作系统 :mac

  • 出现概率:必现

  • 额外线索:目前只测试了web和模拟器,web是没有报错的

maskDemo.zip (1.2 MB)

1赞

感谢反馈,这个问题将在 2.3.1 修复(论坛正在公测),目前的临时改动方法是参考这个 PR 先定制引擎 https://github.com/cocos-creator/engine/pull/61867 。定制后要重新编译引擎,模拟器才会生效。参考本文 1.3 https://docs.cocos.com/creator/manual/zh/advanced-topics/engine-customization.html3