动态加载 base64 sprite的时候 会在下一帧才改变大小

  • Creator 版本:2.4.3

  • 目标平台: web

  • 重现方式:必现

  • 首个报错:

  • 之前哪个版本是正常的: 2.2.0

  • 手机型号:

  • 手机浏览器: 谷歌

  • 编辑器操作系统:win10

  • 重现概率: 100%

正常在编辑器中拖入 sprite . sizeType: RAW

然后再代码中动态替换 base64 spriteFrame

let strImg = this.data.image;    // base64
        let img = new Image();
        img.src = strImg;

        let texture = new cc.Texture2D();
        texture.initWithElement( img );
        texture.handleLoadedTexture();
        this.ui.imagePanel.image.getComponent( cc.Sprite ).spriteFrame = new cc.SpriteFrame( texture );
        console.log( this.ui.imagePanel.image.width);   //  得到的依然是  40

这样console后.sprite的 w 和 h 依旧是 4040. ( 图片的大小应该是 7501334 )
知道下一帧的时候 .sprite的 宽高 才更新

请问,你这边有找到解决方法吗?我现在,也在通过base64弄用户头像,图片加载成功了,但是尺寸调整不了。我这边引擎是cocoscrator v2.4.2

setTimeout(()=>{
输出精灵的宽高
},1)

感谢!!!神奇的问题,用了定时器之后,再去改变精灵节点的宽高就成功了!可以用了。十分感谢道友!