codecamp

three.js DragControls

该类被用于提供一个拖放交互。

代码示例

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 );

} );

例子

misc / controls / drag

构造函数

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


three.js MMDPhysics
three.js FirstPersonControls
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

参考

核心 / BufferAttributes

渲染器 / WebXR

开发者参考

WebGL渲染器

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }