龙骨动画销毁时,报这个错

Uncaught TypeError: Cannot read property ‘loopComplete’ of null
at dragonBones_ArmatureDisplay.170.proto.hasEventListener (callbacks-invoker.js:119)
at dragonBones_ArmatureDisplay.hasDBEventListener (ArmatureDisplay.js:592)
at ActionTimelineState.284.ActionTimelineState.update (dragonBones.js:9874)
at AnimationState.284.AnimationState.advanceTime (dragonBones.js:8841)
at Animation.284.Animation.advanceTime (dragonBones.js:7486)
at Armature.284.Armature.advanceTime (dragonBones.js:3799)
at WorldClock.284.WorldClock.advanceTime (dragonBones.js:7175)
at DragonBones.284.DragonBones.advanceTime (dragonBones.js:61)
at dragonBones_CCFactory.update (CCFactory.js:28)
at 32.cc.Scheduler.update (CCScheduler.js:413)

我没有添加 DragonBones 事件监听器。

是动态替换骨骼后再销毁的时候出现的么?是的话,先把骨骼动画的节点移除掉骨骼的组件,然后动态创建出骨骼组件添加上去,再去使用骨骼数据

###请问:
creator版本:
测试平台:
重现方式(描述下过程,demo或代码片段):

我也遇见这个问题了,我这个是2.1.0win平台的
cc.loader.loadResDir(playerUrl, function (err, assets) {
if (err) {
cc.log(“btnaddPlayer”, err);
return;
}
if (assets.length <= 0) {
cc.log(“btnaddPlayer”, err);
return;
}
for (var i in assets) {
if (assets[i] instanceof dragonBones.DragonBonesAsset) {
this.armatureDisplay.dragonAsset = assets[i];
}
if (assets[i] instanceof dragonBones.DragonBonesAtlasAsset) {
this.armatureDisplay.dragonAtlasAsset = assets[i];
}
}
}.bind(this));
大概这样子,加载后,用起来没啥问题,但是游戏结束切换场景后机会报你这个错,整个人捣鼓了5个小时也是精神崩溃中,难过:joy:

你好 你遇到这个问题的creator版本是多少
重现方式是怎样,能提供demo测试么

请问有解决方案了么,我这边也是一切换场景销毁节点的时候就会报错
TypeError: Cannot read property ‘loopComplete’ of null
at dragonBones_ArmatureDisplay.169.proto.hasEventListener (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:27828:37)
at dragonBones_ArmatureDisplay.hasDBEventListener (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:49410:21)
at ActionTimelineState.282.ActionTimelineState.update (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:55279:35)
at AnimationState.282.AnimationState.advanceTime (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:54677:71)
at Animation.282.Animation.advanceTime (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:53963:30)
at Armature.282.Armature.advanceTime (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:52152:27)
at WorldClock.282.WorldClock.advanceTime (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:53812:26)
at DragonBones.282.DragonBones.advanceTime (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:50130:23)
at dragonBones_CCFactory.update (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:49450:27)
at 32.cc.Scheduler.update (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:9162:67)

切场景之前销毁龙骨节点?

场上存在龙骨动画然后直接切换场景,场景销毁过程中销毁龙骨动画时报的错

因为需要创建次数比较多所以我把节点移除后放到了对象池里,这样会导致龙骨动画报错么

能否提供下creator版本号,提供下demo,在正常使用中没有遇到这个问题

creator版本2.1.0 用微信开发者工具


龙骨是动态加载的
场景中有多个龙骨动画,其中也有相同的龙骨动画。
二个场景都有龙骨动画,来回的切换,可能会出现上面错误,不是必现

好的 我会跟踪这个问题

我遇到了同样的问题,但是我发现一些规律
骨骼加载的时候 骨骼所在节点或者父节点.active==false 就会出问题
骨骼加载后在当前帧立即播放动画,也会出问题
因为一个骨骼节点会切换不同的骨骼文件来提高性能,只要骨骼在场景切换前最后一次加载没有触发以上俩问题,那就没有问题。。

你好 这个问题目前在2.0.7中已经修复。
如果不升级时,可以在代码中将骨骼数据设置为自动释放。
添加如下代码:

        cc.loader.setAutoReleaseRecursively(this.drbTest.dragonAsset, true);
        cc.loader.setAutoReleaseRecursively(this.drbTest.dragonAtlasAsset, true);

在修复版之前用这样的方法会有连续的警告,可以暂时忽视。
推荐升级到2.0.7中,我们已经优化了许多这方面的问题。

1赞

2.1.0遇到同样问题,第一个场景没问题,但是第二个场景使用同样方法加载相同的骨骼动画,也报这个错,如何解决

同上我的是2.0.5, 加上还是报错。
cc.loader.setAutoReleaseRecursively(this.drbTest.dragonAsset, true);
cc.loader.setAutoReleaseRecursively(this.drbTest.dragonAtlasAsset, true);

2.0.2 加上自动释放还是会报错

2.0.8没这个问题了