dntzhang / cax

Canvas 渲染引擎,支持 SVG,兼容了小程序、小游戏和 Web

Home Page:https://dntzhang.github.io/cax

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

安卓微信下bitmap.clone后经常加载不到

xty1992a opened this issue · comments

如题

看了源码,因为clone时new了一个新的bitmap,同时用当前bitmap的img的链接传入,却没有传递onLoad

换句话说就是clone实际实现是异步的,当外部预设它是同步运行时,如果这个新的bitmap加载图片不够快,就会导致图片丢失。

苹果设备可能图片缓存策略做得好,基本没有出现,部分安卓就非常容易出现

class BitMap{
  constructor (img, onLoad) {
  }

  clone () {
    // 复制完img宽度0??所以直接传字符串 (<--源码注释)
    const bitmap = new Bitmap(typeof this.img === 'string' ? this.img : this.img.src)
    // 其他赋值操作...

    return bitmap
  }
}