three.js DragControls

2023-02-16 17:49 更新

該類(lèi)被用于提供一個(gè)拖放交互。

代碼示例

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

構(gòu)造函數(shù)

DragControls( objects : Array, camera : Camera, domElement : HTMLDOMElement )

objects: 一組可被拖拽的3D Objects。

camera: 渲染場(chǎng)景的攝像機(jī)。

domElement: 用于事件監(jiān)聽(tīng)的HTML元素。

創(chuàng)建一個(gè)新的 DragControls 實(shí)例。

事件

dragstart

當(dāng)用戶(hù)開(kāi)始拖拽3D Objects時(shí)觸發(fā)。

drag

當(dāng)用戶(hù)拖拽3D Objects時(shí)觸發(fā)。

dragend

當(dāng)用戶(hù)開(kāi)始完成3D Objects時(shí)觸發(fā)。

hoveron

當(dāng)指針移動(dòng)到一個(gè)3D Object或者其某個(gè)子級(jí)上時(shí)觸發(fā)。

hoveroff

當(dāng)指針移出一個(gè)3D Object時(shí)觸發(fā)。

屬性

.enabled : Boolean

是否啟用控制器。

.transformGroup : Boolean

此選項(xiàng)僅在 DragControls.objects 數(shù)組包含單個(gè)可拖動(dòng)組對(duì)象時(shí)才有效。如果設(shè)置為 true,DragControls 不會(huì)變換單個(gè)對(duì)象,而是變換整個(gè)組。默認(rèn)為假。

Methods

共有方法請(qǐng)參見(jiàn)其基類(lèi)EventDispatcher。

.activate () : undefined

添加控制器的事件監(jiān)聽(tīng)。

.deactivate () : undefined

移除控制器的事件監(jiān)聽(tīng)。

.dispose () : undefined

若不再需要該控制器,則應(yīng)當(dāng)調(diào)用此函數(shù)。

.getObjects () : Array

返回可拖動(dòng)對(duì)象的數(shù)組。

.getRaycaster () : Raycaster

返回用于相交測(cè)試的內(nèi)部 Raycaster 實(shí)例。

源碼

examples/jsm/controls/DragControls.js


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)