-
Creator 版本:2.4.5
-
目标平台: chrome
-
重现方式:代码差不多如下
cc.resources.load(“spineTest/W/skeleton”, sp.SkeletonData, (err: Error, skData: sp.SkeletonData) => {
if(err) {
cc.error(err);
return;
}
let node: cc.Node = new cc.Node;
this.node.addChild(node);
let sk: sp.Skeleton = node.addComponent(sp.Skeleton);
sk.premultipliedAlpha = false;
sk.loop = false;
sk.skeletonData = skData;
sk.setAnimation(0, “W1”, false);
sk.setCompleteListener((trackEntry: sp.spine.TrackEntry) => {
cc.resources.release(“spineTest/W/skeleton”)
node.destroy();
});
});随便建个场景加个脚本加个按钮,将上述代码放在按钮回调中。第一次点按钮完全正常,等动画播完进入回调删除对应资源和Node后,再按按钮,则什么也没后看见,但结束回调居然还能进去skeleton.zip (3.0 MB)
-
首个报错: 没有报错
-
重现概率: 必现
估计是纹理丢失了 这个问题在3.x修复了 好像还没同步到2.4.x 

最近比较忙 有空了我帮你验证一下 有问题的话会在下个版本修复 不好意思啦 
有劳大大了 
麻烦提供一下完整demo
求管理审核通过

xxxxxxxxxxxxxxxxxxx.zip (3.6 MB)
测试流程:
导入之后运行test场景,点击play按钮,代码会载入spine,载入结束后会播放动画,播放结束日志会打印complete!!!,然后点击release卸载spine资源,再点play,动画没有显示,但是播放回调会依旧执行,打印complete!!!
求大佬关注下,demo已提
我打不开你的项目 你再检查一下?
用导入,不是直接打开
试了下没成功. 要不你重新打包一个再发一下
好的 收到
cc.resources.release(“spineTest/W/skeleton”);
问题在于你脚本中释放时没有指明要释放的资源类型. 导致没有调用skeletonData的destroy(). 因此再次加载时会默认去找cache而不会重新创建, 但此时texture已经被释放掉了. 导致显示不正确.
应该改为 cc.resources.release(“spineTest/W/skeleton”, sp.SkeletonData);
原来如此,感谢感谢~~~~~
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。
