帧动画cc.Animation问题 调试模式预览正常,去掉调试模式发布动画抖动鬼畜

环境:chrome 86.0.4240.80(正式版本) (x86_64)
creator版本:2.4.3

主要代码:
cc.resources.loadDir加载一个图片文件夹
cc.AnimationClip.createWithSpriteFrames用图片创建帧动画

this.animComponent = this.animNode.getComponent(cc.Animation);
        cc.resources.loadDir('shot_goal', cc.SpriteFrame, null, (err, spriteFrames) => {
             if (!err) {
                console.log(spriteFrames);
                 let clip = cc.AnimationClip.createWithSpriteFrames(spriteFrames, 30);
                 clip.name = 'shot_goal';
                 clip.wrapMode = cc.WrapMode.Normal;
                 clip.speed = 1.5;
                 this.animComponent.addClip(clip);
                 this.animComponent.play('shot_goal');
             }
         });

1.调试模式run项目一切正常
2.去掉调试模式发布项目 运行 动画疯狂鬼畜

frameAnim.zip (2.0 MB)

求大佬帮忙看看 感谢

用creator的动画编辑器制作animationClip然后代码播放动画没问题,暂时用这个方法绕过去.

但是上面的问题是存在的…大概猜出是loaddir加载的图片属性发生了变化…具体的没弄清楚…

+1,cc遇到同样的问题

+1 同样遇到
用代码方式就鬼畜 用动画编辑器制作animationClip太费时间了

@有没有官方来看下?编辑器里正常,代码里动态加就鬼畜。trim和sizemode设置过

@jare 望官方看一下这个问题

2.4.13 还有这个问题

3.6.3还有这个问题 @jare

有救了,debug模式下图片顺序没问题。而build之后,图片顺序是乱的。这样解决:

// 加上这个对精灵帧的排序就好了
spriteFrames.sort((sf1, sf2) => {
return sf1.name.localeCompare(sf2.name);
});

// 再用createWithSpriteFrames创建
const clip = AnimationClip.createWithSpriteFrames(spriteFrames, anim.sample);