模拟器动态加载龙骨动画报错

  • Creator 版本:2.3.1

  • 目标平台:
    cocos creator自带的模拟器(使用浏览器模式就正常,win跟mac下都是同样的情况)

  • 重现方式:运行模拟器后,点击按钮掉用load龙骨动画时报错

  • 首个报错:
    Simulator: Assertion failed: (ok), function start, file /Users/nantas/jenkins/workspace/Creator_2D/cocos2d-x-lite/mac/cocos2d-x-lite/cocos/scripting/js-bindings/jswrapper/v8/ScriptEngine.cpp, line 571.
    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. (/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.topLevelDomainCvideo.targz (1.6 MB) allback (domain.js:124:23)

  • 之前哪个版本是正常的:其他没试过

  • 重现概率:100%

*其他:浏览器正常,跟模拟器异常的视频见附件

点击按钮的主要逻辑如下:
执行_LdAniDbs方法时就报了主题的错误

clicklogic(){
let _tmpNd=cc.instantiate(this.CmpnntDbs);
let _tmpCmpnnt=_tmpNd.getComponent(dragonBones.ArmatureDisplay);
this._LdAniDbs(this.TstMnNd,_tmpCmpnnt,‘ExampleBear’,‘bear’,(cmm)=>{
this.TstMn.x=300;
this.TstMn.scale=0.3;
this.TstMn.runAction(cc.moveTo(1,-300,0));
cmm.playAnimation(‘turn face’,1);
this.scheduleOnce(()=>{
cmm.playAnimation(‘walk’,0);
this.scheduleOnce(()=>{
cmm.node.active=false;
},0.1);

            },1);
    });

},

_LdAniDbs(parentSrc,cmpnntDbs,strSffx,armatureName,callFunc){
let _tmpSffx=‘animation/’;
cc.loader.loadRes(_tmpSffx+strSffx+’_ske’,dragonBones.DragonBonesAsset,
function(err,resource){
if(err){
console.log(‘LoadAnimation Failed:’+err);
return;
}
cmpnntDbs.dragonAsset = resource;
console.log(‘LoadAnimation Success0:’);
cc.loader.loadRes(_tmpSffx+strSffx+’_tex’,dragonBones.DragonBonesAtlasAsset,
function(err,resource1){
if(err){
console.log(‘LoadAnimation Failed:’+err);
return;
}
cmpnntDbs.dragonAtlasAsset = resource1;
cmpnntDbs.armatureName = ‘Armature’;
if(armatureName){
cmpnntDbs.armatureName = armatureName;

                    }
                    cmpnntDbs.node.parent=parentSrc;
                    console.log('LoadAnimation Success1:');
                    if(callFunc){
                        callFunc(cmpnntDbs);
                    }
                });
    });
},