从零开始学习3D可视化之事件卸载、事件暂停

可视化前端开发对技术的要求 前端工程师的职位我是觉得真心不错的,但有的前端工程师野心很大呀,不甘于只写页面代码,还要往更好的方向发展,比如可视化方向。3D可视化已经被越来越多人、企业了解和应用起来。那你知道对于可视化前端开发有什么样的技术要求吗?其实不难。一切都借助于平台开发,thingjs平台简化webgl、封装threejs,只需要前端有一定的开发经验,熟练掌握Javascript语言就行啦~简单拖拽,写一些代码就可以实... 阅读详情

事件就是用户或浏览器自身执行的某种动作,而响应某个事件的函数就叫做事件处理程序 (或事件侦听器)。事件处理程序的名字以 "on" 开头,比如 click 事件的事件处理程序就是 onclick。下面我将继续学习数字孪生可视化场景中如何卸载事件、暂停和恢复事件、自定义事件。

卸载事件

如果内存中保留大量无用的事件处理程序,会影响性能。所以一定要在不需要的时候及时移除事件处理程序。需要卸载一个事件的时候使用 off() 方法。这样就把所有的数字孪生可视化building 下的 click 事件都清除了。假设这个数字孪生可视化物体有多个 marker,找到其中一个卸载掉事件,不影响其他 marker和后创建的 marker。

app.on("click", function(event) {
    console.log("you click!");
});

// 卸载
app.off("click");

app.on("click", ".Building", function(event) {
    console.log("you click!");
});

// 卸载
app.off("click", ".Building");

app.on("click",".Building",function(event) {
    console.log("you click 1 !");
},"tag1");

// 卸载
app.off("click", ".Building", "tag1");

注意事项:

若绑定数字孪生可视化事件时,添加了条件,则off 第二个参数必须传条件,如果没有条件,又需要传tag ,需要将条件传 null。

暂停和恢复事件

如果off掉一个事件,要想恢复,有时候比较难,就会找不到之前的回调方法了。面对这种情况,提供 pauseEvent方法,用于暂停事件,它的控制方法和标准类似于 off。

app.on("click",".Building",function(event) {
    console.log("you click!");
},"tag1");

// 暂停
app.pauseEvent("click", ".Building", "tag1");

// 恢复
app.resumeEvent("click", ".Building", "tag1");

自定义事件

ThingJS 内置了很多事件,但如果自己写模块的时候,也需要触发事件,该如何操作?外部注册还是使用 on,在需要触发的地方可以使用 trigger 接口来对外触发事件。

比如在写一个数字孪生可视化报警管理器:

class AlamrManager {
    constructor() {
        ......
    }

    enable() {
        ......
        app.trigger("AlarmEnable")
        ......
    }

    setObjAlarm(obj, alarmLevel) {
        ......
        obj.trigger("alarm", {"level":alarmLevel} )
        ......
    }
}

外部注册如下:

app.on("AlarmEnable", function(ev){
    ......
})

app.query(".Thing").on("alarm",function(ev){
    if(ev.level == "critical"){
        ......
    }
    ......
})

—————————————————

数字孪生可视化:https://www.thingjs.com/

Trae Skill结合Three.js与Vue开发3D可视化大屏实战 AI编程工具正重塑前端开发流程,通过自然语言指令即可生成可运行代码。其中,Skill技能包机制将团队规范与项目经验结构化,让AI输出符合工程要求的代码,而非零散demo。Three.js作为WebGL生态中最成熟的3D库,搭配Vue响应式框架,成为构建数据可视化大屏的常见技术组合。本文从基础概念出发,讲解AI IDE、技能包、三维渲染与前端框架的核心原理,探讨它们如何协同提升开发效率,并结合实际工程场景,演示配置Skill后让AI生成三维地球、飞线动画及数据对接的完整流程,帮助开发者避开WebGL性能陷阱, 阅读详情

相关推荐

强化学习可视化系统:可观察、可验证、可复现的Agent学习过程

强化学习中的智能体(Agent)学习过程本质上是状态-动作价值迭代与策略优化的动态演化。其核心原理依赖于环境交互、奖励信号反馈与梯度驱动的参数更新,技术价值在于将黑箱决策转化为人类可理解的认知线索。典型应用场景包括算法教学、训练调试与策略可解释性分析。为突破传统loss曲线与静态日志的认知局限,需构建支持实时渲染、分层解耦与多维反馈的可视化系统,尤其强调动作概率分布、状态价值热力图与奖励趋势分析等关键可观测要素——这正是‘Watch Our Agent Learn’项目所实现的工程范式。

weixin_30527423的博客 563

重拾javascript--事件模型

《重拾javascript–事件模型》1.概念 什么是事件? <button id="save" onclick="save()" /> function save(){ //dothings }上面的onclick就是一种简单的事件(点击事件)2.分类1.原始事件模型(DOM0模型)例如html代码的中的 html <input type=”but

suix1n 234

3D高斯溅射模型训练全解析:从原理到调优实战

在计算机视觉与图形学领域,3D场景重建和新视角合成是核心研究方向。其原理是通过多视角图像恢复场景的三维几何与外观表示。传统方法如神经辐射场(NeRF)依赖体渲染,计算成本高昂。而3D高斯溅射作为一种新兴的可微渲染技术,通过显式的3D高斯椭球集合表示场景,实现了高质量的实时渲染。其技术价值在于将复杂的体渲染积分转化为高效的基于图元的栅格化过程,大幅提升了训练与推理速度。在应用场景上,该技术为AR/VR、机器人导航、数字孪生等领域提供了高效的3D内容生成方案。本文聚焦于3D高斯溅射模型训练中的核心环节——自适应

weixin_34348805的博客 400

基于 ThingJs OOP 编程尝试

成功的含义不在于要得到什么,而在于你从那个奋斗的起点走了多远。 ---《心灵捕手》 复制代码Demo GitHub 前言 本来计划是最近好好研究下 Vue ,可是项目一个接一个,需求开发有点吃力效率还一般。作为一个又高又帅的全栈特别不爽啊,挤时间把关于 ThingJs 资料全部过了一遍,满满的干货拉回家啊。其实 ThingJs 文档做的挺全,以前没仔细看过,还吐槽了,

weixin_30408739的博客 343

Vue Carousel 3D实战:从原理到性能优化的3D轮播组件深度指南

CSS 3D Transform是现代前端实现三维视觉效果的核心技术,它通过`transform-style: preserve-3d`、`perspective`和`rotate`等属性在浏览器中构建虚拟三维空间。其原理是将二维平面元素置于三维坐标系中,通过透视投影模拟真实世界的景深与空间关系。这项技术的工程价值在于能以极小的性能开销实现媲美原生应用的视觉体验,无需依赖沉重的WebGL库。在Vue.js生态中,这一技术被广泛应用于数据可视化大屏、产品展示画廊等需要强烈视觉冲击力的场景。本文聚焦的`Vue

weixin_30443731的博客 391

Vue3集成Three.js实现前端DXF图纸解析与3D可视化

在前端开发中,实现CAD图纸的在线可视化是工业设计、建筑BIM等领域的常见需求。其核心原理是通过WebGL技术,在浏览器中直接渲染三维图形,无需依赖后端转换。Three.js作为主流的WebGL库,提供了强大的3D渲染能力,但原生不支持DXF等专业CAD格式。为此,开发者需要借助dxf-parser等解析库,将DXF文件转换为结构化数据,再通过three-dxf等适配器转换为Three.js可识别的实体。这种技术方案的价值在于实现了完全前端化的CAD图纸处理,降低了服务器负载,并支持丰富的交互操作。在Vue

weixin_33701564的博客 560

实现比较通用的DOM事件挂载、事件卸载(兼容)

/** * DOM 事件挂载 * el DOM元素 * eventName 事件名 * listener 监听函数 * capture 是否是捕获阶段 */ function install(el, eventName, listener, capture) { if (el.addEventListener) { el.addEventListener(eventName, listener, capture); }else { el.atta.

编程界明世隐的博客 1112

Mem0 vs LangMem vs Letta:三大AI记忆框架实战对比(附代码示例)

本文深入对比了Mem0、LangMem和Letta三大AI记忆框架的核心特性与适用场景。Mem0提供开箱即用的记忆管理服务,适合快速集成;LangMem深度融入LangGraph生态,适合复杂工作流;Letta则采用虚拟内存系统,旨在突破上下文窗口限制。文章通过实战代码示例,为开发者选择适合其业务需求的AI记忆解决方案提供了清晰指南。

g9h0i1的博客 681

js的页面加载事件和页面卸载事件

(1)页面加载事件onload():当页面载入完毕后执行Javascript代码。 浏览器支持: (2)页面卸载事件onunload(): onunload 事件在用户退出页面时发生。 onunload 发生于当用户离开页面时发生的事件(通过点击一个连接,提交表单,关闭浏览器窗口等等。) 浏览器支持: 【范例】在页面载入完毕时提示"请问要将此页面设置为主页吗?",退出页面时

Leo的博客 9495

一起玩儿物联网人工智能小车(ESP32)——48. 利用循迹模块实现循迹小车(三)

摘要:本文介绍循迹小车的接线方法及类的基础知识

一起玩儿科技 1137

桁架 拓扑优化 matlab程序_拓扑优化在结构轻量化及板壳加筋肋最优布置的应用...

1 拓扑优化简介材料的有效利用一直都是人类追求的目标,也是许多研究领域不变的话题,并伴随着结构优化理论和方法的产生而发展。结构优化设计通常分为三个层次:(1)拓扑优化:在一个确定的连续区域内寻求结构内部非实体区域位置和数量的最佳配置,寻求结构中的构件布局及节点联结方式最优化,使结构能在满足应力、位移等约束条件下,将外载荷传递到结构支撑位置,同时使结构的某种性态指标达到最优;(2)形状优化:指在保持...

weixin_39525355的博客 1878

ThingJS学习总结

ThingJS概述 ThingJS 是物联网可视化PaaS开发平台,帮助物联网开发商轻松集成 3D 可视化界面。ThingJS 名称源于 物联网Internet of Things (IoT)中的 Thing (物),ThingJS 使用当今最热门的 Javascript 语言进行开发。不仅可以针对单栋或多栋建筑组成的园区场景进行可视化开发,搭载丰富插件后,也可以针对地图级别场景进行开发。广泛

m0_37623485的博客 3581

Revit二次开发——不启动Revit,做rvt文件数据导出

Revit二次开发——不启动Revit,做rvt文件数据导出Node.js部分调用C#端供外部调用的dllC#部分调用RevitNet.dll,做数据导出exe做外部调用dll总结功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 N

Y.Jerome的专栏 4113

从零开始学习3D可视化之事件的常用方法

1、 绑定事件并添加条件 2、 同一个事件注册多个回调 3、 tag 标签 4、 设置事件优先级 5、 注册单次事件 事件不会自己执行,需要触发(即事件被触发之后才可执行)。审视任何JavaScript代码的核心,你会发现正是事件是把所有东西融合在一起。下面我学习了一些在数字孪生可视化场景中事件的常用方法。 1、 绑定事件并添加条件 事件添加了条件,只有在符合该条件的数字孪生可视化物体上 click 才会触发,无论是已经存在的 Thing 对象,还是后面新创建的 Thing 对象都会生效。

ThingJS的博客 1637

STM32F429网络通信避坑指南:用CubeMX搞定LAN8720+LWIP+FreeRTOS(附完整代码)

本文详细介绍了STM32F429通过CubeMX配置LAN8720+LWIP+FreeRTOS实现网络通信的避坑指南,涵盖硬件连接、CubeMX配置、LWIP优化及调试技巧,提供完整代码和实战经验,帮助开发者高效解决以太网通信中的常见问题。

weixin_26873711的博客 145

[VCS]VCS dump fsdb的精细化控制

本文介绍了VCS FSDB波形dump的精细化控制方法。主要内容包括:1)基本dump方式;2)通过$fsdbDumpoff排除特定层次;3)使用$fsdbDumpvars选择性dump指定模块;4)运行时动态控制dump开关;5)通过文件管理排除列表($fsdbDumpoffFile或自定义读取);6)层次控制策略(剪除整棵树或仅当前层)。这些方法可有效控制波形文件大小,提高仿真效率。

元直的博客 1035

数字孪生可视化开发技术(ThingJS)学习笔记

笔者参加了一个有优锘科技(以下简称该公司)举办的数字孪生可视化开发技术训练营培训,该公司研发了低代码 3D可视化开发平台 ThingJS 相关生态链,主要用于以一种低代码简单的方式构建城市、园区等生产生活应用场景下数据展示。这些相关培训的内容也是本文的记录点。..............................................................................................................................

jclee95的个人博客 6570

Mac版 Android Studio自带模拟器无法联网解决方案

前言 作为一枚安卓开发者,免不了使用模拟器来开发调试(毕竟它比手机方便太多)。但是因为适配需要,我们会更多的使用真机开发调试,那么当模拟器遇到这样那样的问题,我们往往会无从下手,其中最烦的就是网络问题。 我最近图方便,又重新用起了模拟器,但是发现联网失败,用模拟器内置的浏览器也打不开网页,于是百度上一通找,毫无效果,各种说用cmd命令行设置模拟器dns的都没用,显示没有什么dns文件啥的,后来...

陈万洲的专栏 1万+

webgl三维可视化在线开发实用教程

事件 ThingJS 系统内置了很多事件,比点击鼠标、键盘输入、层级变化等。用户可以监听这些事件,在事件回调中进行相应的业务逻辑处理。 事件介绍 全局绑定事件和局部绑定事件 用户的操作以及场景的变化,都将会触发相应的事件。你可以监听这些事件,然后在回调方法中做相应的处理。 全局绑定:通过 app.on 绑定事件,可在全局下添加条件指定针对哪些物体绑定该事件,条件规则同于 query 使用...

1088

BurpSuite工具HaE插件好用正则收集

数据集合面板里面直接查询捕获到的相关数据内容,省去一个个翻找数据包内容的烦恼。插件捕获到匹配正则表达式的数据包后,可以在。可以对正则条目进行添加、编辑、删除。规则信息管理,我们点击。

墨痕诉清风的博客 656

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Godot音频状态管理:3行代码实现游戏暂停恢复无缝衔接

在游戏开发中,音频系统是构建沉浸式体验的核心组件,其状态管理直接影响玩家感受。音频状态保存与恢复技术,旨在解决游戏暂停、切出等场景下的体验割裂问题。其原理是通过捕获音频播放器的关键参数(如播放位置、音量、音效参数等),形成状态快照,并在适当时机精准还原。这项技术的核心价值在于提升游戏的连贯性与专业度,尤其适用于需要保持情绪连贯的剧情游戏、开放世界或移动端应用。通过设计中央音频管理器(AudioManager)单例,开发者可以封装复杂逻辑,实现简洁API调用。本文以Godot引擎为例,深入解析如何利用其节点系

weixin_33928137的博客 417

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ContextMenuManager 新手教程:5 步管好 Windows 右键菜单

右键一个文件,菜单里塞满了用不到的条目,还混着早已卸载软件的残留项。ContextMenuManager 是一款纯粹的 Windows 右键菜单管理程序,用界面开关即可启用或禁用菜单项,也可新建、修改、定位和删除。程序分为 .NET 3.5 与 .NET 4.0 两个版本,兼容 32 位和 64 位系统,Win7、Win8、Win10 可直接运行,代码注释标明兼容 Vista 到 Windows

gitblog_00945的博客 181

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

yserver渲染管线深度解析:从Vulkan命令录制到上屏的5大组件(DrawableStore→FrameBuilder)

yserver 是一个用 Rust 从零实现的现代 X11 服务器,它的渲染管线基于 Vulkan 直接驱动 DRM/KMS,把 X11 协议请求转换为 GPU 命令,最终无损上屏。本文带你完整拆解这条管线中的 5 大核心组件:DrawableStore(画布存储)、RenderEngine(绘图引擎)、FrameBuilder(每帧合并器)、SceneCompositor(场景合成器)和 Gpu

gitblog_00681的博客 166

Codex快速搭建3D打印机监控仪表盘:5分钟实现OctoPrint可视化

在物联网和智能硬件领域,设备监控仪表盘是实现数据可视化和远程管理的关键技术。其核心原理是通过API接口获取设备实时数据,并利用前端图表库进行可视化展示,从而降低运维复杂度、提升管理效率。这一技术对于创客、小型工作室和硬件开发者具有重要价值,广泛应用于3D打印、CNC加工、环境监测等场景。本文聚焦于如何利用Codex这一快速开发工具,结合OctoPrint的API接口,在极短时间内构建专业的3D打印机监控界面。通过配置数据源和可视化组件,即使没有深厚全栈开发经验,也能实现打印进度、温度曲线等关键指标的实时展示

weixin_33805992的博客 408

Unity音频可视化开发:Master Audio与FMOD Visualizer无代码实战

音频可视化是游戏开发中提升沉浸感的关键技术,它通过实时分析音频数据(如振幅、频谱、节拍)并将其映射到视觉元素上,实现视听同步。其原理基于数字信号处理,将声音的波形和频率信息转化为图形、粒子或动画参数。这项技术的核心价值在于降低开发门槛,让非程序员也能参与音频交互设计,同时增强玩家的感官体验。在应用场景上,广泛用于动态UI反馈、环境氛围营造、音乐游戏节奏可视化等。本文聚焦Unity引擎,通过Master Audio插件实现无代码音频逻辑管理,结合FMOD Visualizer插件完成音频数据的可视化驱动,为独

weixin_34034261的博客 400

EdgeRemover:突破Windows组件锁定的Edge浏览器深度卸载方案

Windows操作系统中Microsoft Edge浏览器的卸载困难源于三个维度的系统性锁定机制。作为系统级组件,Edge采用**复合安装架构**,其文件分布于`C:\Program Files\Microsoft\Edge`主目录、`C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe`系统应用目录及`%USERPROFILE%\

gitblog_00237的博客 342
上一篇: 从零开始学习3D可视化之事件的常用方法
下一篇: 手把手教你实现聚光灯效果
ThingJS_小锘
博客等级 码龄6年 170粉丝 254原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值