You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

p5.js搭配p5.play.js报Cannot read properties of undefined (reading 'touches')如何修复

Uncaught TypeError: Cannot read properties of undefined (reading 'touches')
    at p5._main.default._updateTouchCoords (p5.js:78864)
    at p5._updateNextTouchCoords (p5.play.js:265)
    at p5._onmousedown (p5.play.js:302)
报错原因

这是p5.play v2.x版本与p5.js v1.5.0及以上版本的兼容性问题:p5.js从v1.5.0开始重构了内部模块导出逻辑,移除了_main这个内部属性,而p5.play v2在处理触摸、鼠标事件时会硬编码调用p5._main.default._updateTouchCoords方法,找不到对应属性就会抛出该错误。

修复方案
  • 方案1:降级p5.js版本
    将p5.js版本回退到v1.4.1,这是p5.play v2官方适配的最后一个p5.js版本,无需修改其他代码即可解决报错。
  • 方案2:手动打兼容性补丁
    保留现有p5.js版本的前提下,在引入p5.js之后、引入p5.play.js之前插入如下代码:
    p5.prototype._main = { default: p5 };
    
    手动补全p5.play依赖的内部属性即可正常运行。
  • 方案3:升级p5.play到v3.x版本
    p5.play v3已经完全重构了事件处理逻辑,修复了和新版p5.js的兼容问题,直接升级到v3即可解决该报错。

注意:无论使用哪种方案,都需要保证库的引入顺序为:先加载p5.js,再加载p5.play.js,顺序错误也会触发同类依赖报错。

内容的提问来源于stack exchange,提问作者Andy-THE-Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:45:03