收藏
回答

request或img.src=xxx缓存本地资源,但是不会使用~

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小游戏 需求 wx.createImage 微信iOS客户端 7.0.9 2.10.1

当某对象需要图片资源,开始请求,请求成功后,既需要立即返回资源,同时将其缓存起来

  1. downloadFile 会把 下载 & 缓存 合并成一步,但是 缓存请求并发集中时,会卡顿,所以需要 在请求成功后,立即返回资源,但延后缓存。
  2. 所以想到了 两种思路
  3. -a·使用wx.request去请求资源,成功后,立即返回资源,然后延时writeFile,但问题是,我请求来的是arraybuffer数据,然而立即需要返回的是一个 HTMLImageElement 对象,我不会将arraybuffer数据 转换成这种对象

-b·另一个思路,img.src=xxx 然后在回调里 我获得了HTMLImageElement 对象,但是 我不会将他缓存起来,因为 wrtiteFile格式需要string/arraybuffer 所以还是 卡在两者的转换上。

求大神指点迷津

顺便问一句,我自己在尝试,去看image的定义与生成,看adapter中,逻辑还勉强看得懂,然而第一句,

(function(m){

function r(c){/*...*/};

return r(0);

})

我是懵了,这也不是自运行,他是怎么运行的呢,怎么生效的~ 知识盲区了~

最后一次编辑于  2020-03-25
回答关注问题邀请回答
收藏

1 个回答

  • lixd
    lixd
    2020-03-25

    自问自答:

    egret.BitmapData.create("arraybuffer",res.data,(b)=>{

    这样即可~

    总结来说就是 request 得来的 arraybuffer 数据 通过 bitmapdata 自动转化为了 egret 识得的 格式~

    2020-03-25
    有用 3
    回复
登录 后发表内容
问题标签