解决Three.js中使用OrbitControls导致不能选中DOM的问题
来源:互联网 发布:漂亮老婆 知乎 编辑:程序博客网 时间:2024/06/05 09:21
THREE.OrbitControls = function ( object, domElement ) {
...
this.domElement = ( domElement !== undefined ) ? domElement : document;
...
var scope = this;
...
var element = scope.domElement === document ? scope.domElement.body : scope.domElement;
...
scope.domElement.addEventListener( 'contextmenu', onContextMenu, false );
scope.domElement.addEventListener( 'mousedown', onMouseDown, false );
scope.domElement.addEventListener( 'wheel', onMouseWheel, false );
scope.domElement.addEventListener( 'touchstart', onTouchStart, false );
scope.domElement.addEventListener( 'touchend', onTouchEnd, false );
scope.domElement.addEventListener( 'touchmove', onTouchMove, false );
window.addEventListener( 'keydown', onKeyDown, false );
...
}
最近做关于ThreeJS的毕设,陆陆续续把一些遇到的问题发过来。
在使用OrbitControls.js时,如果按照官方例程初始化如下:
orbitControls = new THREE.OrbitControls(camera);
会发现整个页面随便点哪里拖动都可以触发orbitControl,这将导致我们无法选中其它元素或在input中编辑文字等。现在通过源代码来解释这个问题的成因。在文章开头的源码中可以看到,如果初始化时不传入第二个参数,orbitControl默认监听的是document,自然地整个文档范围内的所有相关事件都会被监听。相应的,解决方法自然是把场景所在的canvas作为第二个参数传进来
orbitControls = new THREE.OrbitControls(camera, renderer.domElement);
即可。
- 解决Three.js中使用OrbitControls导致不能选中DOM的问题
- Three.js中OrbitControls.js的用法
- Three.js实战--修改OrbitControls的按键
- three.js轨道控制器OrbitControls.js
- Fragment 中使用 SwipeRefreshLayout 导致的不能退出问题
- 解决three.js加载外部obj文件在chrome浏览器中无法显示的问题
- JS解决chrome37+ window.showmodaldialog函数不能使用的问题
- three.js 文字无法显示问题的解决
- 解决scrollView中嵌套编辑框导致不能上下滑动的问题
- python中模块引用导致python模块不能直接执行问题的解决
- 解决scrollView中嵌套编辑框导致不能上下滑动的问题
- ADAMS使用过程中的license不可用导致软件不能打开问题的解决
- three.js使用二:修复three.js的纹理路径多一个\的问题
- 解决extjs grid文字不能选中的问题
- 解决DreamWeaver代码视图中文不能精确选中的问题
- Android解决Item项不能被选中的问题
- 解决拨号连网导致的不能正常关机的问题
- 解决ScrollView嵌套ViewPager,导致ViewPager不能滑动的问题
- c++ 一个经典的makefile实例 g++ (8.1是目标文件)
- 虚析构函数
- I/O寄存器的边际效应
- Spring事务传播行为(Propagation behavior)
- gdb简单的调试命令
- 解决Three.js中使用OrbitControls导致不能选中DOM的问题
- 高通dsps部分的打印
- Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files defi
- Oracle Goldengate在HP平台裸设备文件系统OGG-01028处理
- Linux下CGroup进行CPU内存等资源控制
- Oracle中 (+)与left join 的用法区别
- linux笔记two
- F-04畫面按鈕權限設定
- 堆、大根堆、小根堆