Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Three.js中停用DragControls?

如何在Three.js中停用DragControls?
EN

Stack Overflow用户
提问于 2019-01-07 00:41:20
回答 2查看 1K关注 0票数 3

我想在取消选中复选框后停止DragControls功能。我尝试使用removeEventListener,但它似乎不起作用。你知道怎么停用DragControls吗?

代码语言:javascript
运行
AI代码解释
复制
let dragControls;

function dragControlsStart() {
    dragControls.addEventListener('dragstart', function (event) {
        controls.enabled = false;
    });
    dragControls.addEventListener('dragend', function (event) {
        controls.enabled = true;
    });
}

function dragControlsStop() {
    dragControls.removeEventListener('dragstart', function (event) {
        controls.enabled = false;
    });
    dragControls.removeEventListener('dragend', function (event) {
        controls.enabled = true;
    });
}

function dragAndDropActivate() {
    let checkBox = document.getElementById("dragAndDropCheckbox");
    dragControls = new THREE.DragControls(meshes, camera, renderer.domElement);

    if (checkBox.checked == true) {
        dragControlsStart();
    } 
    else if (checkBox.checked == false) {
        dragControlsStop();
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-07 07:38:10

看起来这些控件上有一个activate and deactivate函数,可以添加和删除所有事件,这听起来就是您要找的:

代码语言:javascript
运行
AI代码解释
复制
// create drag controls once and activate or deactivate 
const dragControls = new THREE.DragControls(meshes, camera, renderer.domElement);

function dragAndDropActivate() {
    let checkBox = document.getElementById("dragAndDropCheckbox");

    if (checkBox.checked == true) {
        dragControls.activate();
    } 
    else if (checkBox.checked == false) {
        dragControls.deactivate();
    }
}

在代码中需要注意的另一件事是,在Javascript中添加和删除事件的方式将不起作用,因为每次调用这些函数时都会创建新的函数句柄。相反,您希望创建一次函数,并在添加或删除侦听器时使用相同的引用。

代码语言:javascript
运行
AI代码解释
复制
function dragEndCallback(event) {
    // ...
}

dragControls.addEventListener('dragEnd', dragEndCallback);
dragControls.removeEventListener('dragEnd', dragEndCallback);

希望这能有所帮助!

票数 3
EN

Stack Overflow用户

发布于 2019-01-07 18:04:46

解决方案:

代码语言:javascript
运行
AI代码解释
复制
let dragControls = new THREE.DragControls(ArrayOfMesh, camera, renderer.domElement);

dragControls.addEventListener('dragstart', function (event) {
    controls.enabled = false;
});

dragControls.addEventListener('dragend', function (event) {
    controls.enabled = true;
});

dragControls.deactivate();


function dragAndDropActivate() {

    let checkBox = document.getElementById("dragAndDropCheckbox");

    if (checkBox.checked == true) {
        dragControls.activate();
    } 
    else if (checkBox.checked == false) {
        dragControls.deactivate();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54067294

复制
相关文章
如何在java中去除中文文本的停用词
第一步:先将中文文本进行分词,这里使用的HanLP-汉语言处理包进行中文文本分词。
IT小白龙
2019/04/29
1.3K0
如何在java中去除中文文本的停用词
python停用词表整理_python停用词表
大家好,又见面了,我是你们的朋友全栈君。 stop_words:设置停用词表,这样的词我们就不会统计出来(多半是虚拟词,冠词等等),需要列表结构,所以代码中定义了一个函数来处理停用词表…前言前文给
全栈程序员站长
2022/07/02
2.2K0
python停用词表整理_python停用词表
说下three.js 中的相机
所有的3D编程中都有一个避免不了的话题就是相机,相机就是这样一个抽象,它定义了三维空间到二维屏幕的投影方式,用“照相机”这样一个类比,可以使我们直观地理解这一投影方式。而针对投影方式的不同,照相机又分为正交投影照相机与透视投影照相机。
程序你好
2021/07/23
1.6K0
说下three.js 中的相机
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
29.2K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
three.js中的矩阵计算
three.js中自带了矩阵运算库,不过在使用的过程中总是容易混淆。不知道是行主序还是列主序,前乘和后乘也很容易弄反。就在这里辨析一下。
charlee44
2020/09/10
7.5K0
three.js中的矩阵计算
Three.js呈现3D效果机房–初步方案[通俗易懂]
3D机房系统是最近用户的需求,通过相关了解最后使用Three.js,也发现最近有东西可以写出来分享:
全栈程序员站长
2022/09/02
3K0
three.js中帧缓存的使用
在网上查阅了一下three.js关于帧缓存的使用,感觉很多都是关于three.js中后处理通道的使用的。后处理通道确实使用FBO实现的,但其实我就是想获取某个时刻的渲染结果作为纹理,没必要在动态渲染中进行后处理。真正实现这个功能的是WebGLRenderTarget这个类,这是一个渲染目标的缓冲区,可以装载到WebGLRenderer中进行渲染,再从WebGLRenderTarget获取纹理对象。
charlee44
2020/06/22
4.2K0
一文搞懂如何在Three.js里创建阴影效果 |《Three.js零基础直通14》
经过上一小节,我们学会了如何使用各种类型的灯光。既然有了光,那还得有阴影,这样看起来才会更加真实。
大帅老猿
2022/11/11
7.4K0
一文搞懂如何在Three.js里创建阴影效果 |《Three.js零基础直通14》
关于three.js中的矩阵更新
three.js中的Mesh和Camera都继承自Object3D,Object3D提供了更新图形矩阵的接口:
charlee44
2020/06/02
3K0
关于three.js中的矩阵更新
WordPress 官方宣布停用 React
WordPress 在15年的时候使用 React 创建了 WordPress.com 的前端 Calypso,当时很多人都觉得很惊艳:
Denis
2023/04/14
4660
WordPress 官方宣布停用 React
git命令中带有特殊符号如@
使用带用户密码clone的方式: git clone https://username:password@remote 当username和password中含有特殊符号会导致出错, 因为为http的请求,所以需要将特殊符号encode成url格式的 java使用: String c = java.net.URLEncoder.encode(".","utf-8"); System.out.println(c); 源文档 <http://blog.csdn.net/qq1142003960/article/
千往
2018/01/24
2.1K0
Three.js教程(1):初识three.js
今天开始我们进入一个新的世界,那就是3D世界。由于我自己也是刚接触到这块内容,所以如果文章中有问题,请尽快在文章最后的留言板中请指出。本教程有配套代码仓库,请点击https://github.com/KaiOrange/three.js-demo。
kai666666
2020/10/19
23.4K0
Three.js教程(1):初识three.js
three.js
阿谀奉承而无所图的人极少;爱奉承的话,就免不了要付出代价——佚名 一个js的3D库 git仓库:https://github.com/mrdoob/three.js 官网:https://threejs.org/ 其中包含了很多案例 甚至有用它做游戏:
阿超
2022/09/29
13.3K0
three.js
Three.js入门
Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象。你可以在它的主页上看到许多精采的演示。Three.js是一个伟大的开源WebGL库,WebGL允许JavaScript操作GPU,在浏览器端实现真正意义的3D。 Three.js的核心五步就是: 1.设置three.js渲染器 2.设置摄像机camera 3.设置场景scene 4.设置光源light 5.设置物体object 1.设置three.js渲染器 三维空间里的物体映射到二维平面的
李海彬
2018/03/22
7.8K0
Cypress系列(58)- 停用条件测试
https://www.cnblogs.com/poloyy/category/1768839.html
小菠萝测试笔记
2020/09/28
1.3K0
three.js 曲线
上几篇说了three.js的曲线,这篇来郭先生来说说three.js曲线,在线案例点击three.js曲线
郭先生的博客
2020/08/31
11.5K0
three.js 曲线
three.js 材质
今天郭先生说一说three.js的材质。材质描述了对象objects的外观。它们的定义方式与渲染器无关, 因此,如果您决定使用不同的渲染器,不必重写材质。
郭先生的博客
2020/08/28
10K0
『Three.js』起飞!
我习惯使用 vs code 编写前端代码,如果是用原生三件套学习,我还会使用 Live Server 插件辅助开发。
德育处主任
2022/09/23
10.8K0
『Three.js』起飞!
Three.js 前言
 -----------------------------------本文非技术文章,着急开发的小伙伴请绕道-----------------------------------------
朱格利斯
2019/09/26
6.9K0
点击加载更多

相似问题

如何在three.js中用DragControls旋转一条直线的端点?

10

DragControls问题

13

无法使用DragControls

18

DragControls与three.js模块不工作的Node.js和反应

11

THREE.JS:在一组元素上激活dragControls后,如何禁用它们?

270
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文