three.js DragControls
2023-02-16 17:49 更新
该类被用于提供一个拖放交互。
代码示例
const controls = new DragControls( objects, camera, renderer.domElement );
// add event listener to highlight dragged objects
controls.addEventListener( 'dragstart', function ( event ) {
event.object.material.emissive.set( 0xaaaaaa );
} );
controls.addEventListener( 'dragend', function ( event ) {
event.object.material.emissive.set( 0x000000 );
} );
例子
构造函数
DragControls( objects : Array, camera : Camera, domElement : HTMLDOMElement )
objects: 一组可被拖拽的3D Objects。
camera: 渲染场景的摄像机。
domElement: 用于事件监听的HTML元素。
创建一个新的 DragControls 实例。
事件
dragstart
当用户开始拖拽3D Objects时触发。
drag
当用户拖拽3D Objects时触发。
dragend
当用户开始完成3D Objects时触发。
hoveron
当指针移动到一个3D Object或者其某个子级上时触发。
hoveroff
当指针移出一个3D Object时触发。
属性
.enabled : Boolean
是否启用控制器。
.transformGroup : Boolean
此选项仅在 DragControls.objects 数组包含单个可拖动组对象时才有效。如果设置为 true,DragControls 不会变换单个对象,而是变换整个组。默认为假。
Methods
共有方法请参见其基类EventDispatcher。
.activate () : undefined
添加控制器的事件监听。
.deactivate () : undefined
移除控制器的事件监听。
.dispose () : undefined
若不再需要该控制器,则应当调用此函数。
.getObjects () : Array
返回可拖动对象的数组。
.getRaycaster () : Raycaster
返回用于相交测试的内部 Raycaster 实例。
源码
examples/jsm/controls/DragControls.js
以上内容是否对您有帮助:
更多建议: