收藏
回答

Image.naturalWidth在真机上测试undefined

使用官方的adapter,Image对象的naturalWidth字段在模拟器上正常,真机调试时变成undefined. 是否是bug?


const context = canvas.getContext('2d');
const image = wx.createImage();
const imgX = canvas.width / 2 - 50
let imgY = 0
image.onload = function () {
  console.log(image.naturalWidth);
  context.drawImage(image, imgX, imgY)
}
image.src = 'xxx'


最后一次编辑于  07-24  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 白开水
    白开水
    07-25

    工具是浏览器环境,客户端是自行实现的,所以两者有区别。

    什么情况下必须用到 naturalWidth ?

    07-25
    赞同
    回复 1
    • 川
      07-25
      嗯,环境不一样可以理解,毕竟一个是开发工具一个是微信小游戏。 只是开发的过程中发现官方模拟器正常,用真机测试不正常感觉非常困惑。 用naturalWidth的原因是第三方引擎生成的代码里使用的这个属性来确定贴图的宽高,在不方便改引擎代码的情况下,只有在adpter做文章了。
      07-25
      回复
  • 川
    07-25

    你好。  上述代码的  console.log(image.naturalWidth)  这一行输出。在模拟器上是正常的,输出的是image的宽度。  在真机上调试时输出的是undefined。 就是说模拟器上的结果和真机上不太一致。   然后刚才看了下官方api文档,Image对象只有width属性,并没有naturalWidth属性。。。    



    07-25
    赞同
    回复