iframe中嵌套threejs使用TrackballControls时touch事件报错

iframe中嵌套threejs使用TrackballControls时touch事件报错

作者:咕魂

时间:2021年8月3日

项目背景:在使用threejs引擎进行游戏开发时,使用iframe嵌套解决bgm在不同页面连续播放的问题,但是iframe中的onPointerDown事件会触发两次导致position出现两个元素无法使用

解决办法:修改TrackballControls的源码中的addPointer函数

原始函数:

function addPointer(event) {
  _pointers.push(event)
}

修改后:

function addPointer(event) {
  if (_pointers.length == 1) {
    return
  }
  _pointers.push(event)
}

作用:拦截掉一次多余的事件

总结:该方法是在TrackballControls的源码中进行修改,不太推荐,如果有其他拦截iframe多次touch事件的方法欢迎指正

上一篇:Threejs封装电流效果


下一篇:threejs场景中的场景