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事件的方法欢迎指正