Egret社区

[DragonBones] 在销毁工厂的时候,偶发性WorldClock报错

2017-11-17 16:42
9265
产品 Egret Engine 版本 5.0.12
复现概率 50% 平台 Mac OS 10.12.6
复现步骤 大量使用db动画,先销毁各个armatureDisplay.dispose()
再销毁工厂
过程中会偶发性报错
问题描述 项目中大量使用db动画,销毁过程中会偶发性报错
错误代码 armatureDisplay.dispose()
GameScene.factory && GameScene.factory.clear(true);
BUG截图

分享到 :
0 人收藏

5 个回复

倒序浏览
duanchunlei  官方团队 | 2017-11-17 18:02:07
这是一个警告,就是你的动画实例还在,但是动画数据却被销毁了。
就好像 bitmap 还在但是 texture 却被销毁了一样。
ZhuoJianHuang  登堂入室 | 2017-11-17 18:39:26
duanchunlei 发表于 2017-11-17 18:02
这是一个警告,就是你的动画实例还在,但是动画数据却被销毁了。
就好像 bitmap 还在但是 texture 却被销毁 ...

WorldClock里面保存的armature对象怎么样才能remove掉?
duanchunlei  官方团队 | 2017-11-17 19:58:35
ZhuoJianHuang 发表于 2017-11-17 18:39
WorldClock里面保存的armature对象怎么样才能remove掉?

armature.dispose();
ZhuoJianHuang  登堂入室 | 2017-11-18 10:38:30
本帖最后由 ZhuoJianHuang 于 2017-11-18 10:41 编辑

var i = 0, r = 0, l = this._animatebles.length;
            for (; i < l; ++i) {
                var animatable = this._animatebles;
                if (animatable !== null) {
                    if (r > 0) {
                        this._animatebles[i - r] = animatable;
                        this._animatebles = null;
                    }
                    animatable.advanceTime(passedTime);
                }
                else {
                    r++;
                }
            }
还是会执行advanceTime
duanchunlei  官方团队 | 2017-11-20 12:02:55
ZhuoJianHuang 发表于 2017-11-18 10:38
var i = 0, r = 0, l = this._animatebles.length;
            for (; i < l; ++i) {
                va ...

armature.dispose 之后,骨架就不会再更新了,如果更新,可能还是你在释放的时候有问题,比如释放了错误的 armatureDipslay ?这个可能得查一下你的游戏逻辑才行,有没有这种可能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部