收藏
回答

微信小游戏的canvas对象,从不同的js文件new出来,可以有多个吗?

是这样。

我开发小游戏,然后写了2个js文件,对应两个不同的页面。

页面A是js A,页面B是js B。代码按照页面,分开看得清楚些。

但我发现,我在A页面里有一些按钮,当我跳转到B页面,canvas画布已经重新绘制了,但依然能点到A页面的按钮。

这个时候,我怀疑那两个js是同时存在在咱们内存里,每个js对应的canvas是不同的,我跳转过去以后,原来那个js对象的canvas还在!

所以才能点到上个页面的canvas。

但我在离开页面的时候,调用的离开函数里,已经remove监听了,而且页面也重绘了,按道理旧的画布和监听都不复存在,然后才去的新页面啊。

为啥还能点击到上个页面的按钮啊?


最后一次编辑于  2023-06-07
回答关注问题邀请回答
收藏

1 个回答

  • 袁梓民
    袁梓民
    2023-06-07

    你要看看canvas.removeEventListener的封装,是不是真的取掉了事件监听,小游戏取消监听只有wx.OffTouchXXX这种


    2023-06-07
    有用
    回复 1
    • 人工智什么
      人工智什么
      2023-06-08
      谢谢你的回复。我后来都把所有的画布跳转都放在同一个js里去用不同的方法draw了,这样能规避这种问题。我还有一个问题,我发现这个监听特别敏感,用canvas.addEventListener,有时候点击的时间久一点,可能就会被解读成点击两次。这个怎么办呢?
      2023-06-08
      回复
登录 后发表内容