ThingJS官方示例change事件的5个新组件

简介: change事件触发时机根据表单元素type与用户交互决定。

change事件触发时机根据表单元素type与用户交互决定。ThingJS官方示例change事件的5个新组件,展示轻松的3D开发能力!
Change有“改变”的意思,当元素的值发生改变时,会触发 change 事件。
如何结合2D图形面板和js语法来做3D开发?ThingJS做个好示范,教你着手开发不同物体的温度、雾效和iframe页面。官方新推出change事件的功能,对应各种3D效果元素的值的变化,方便在GUI(图形界面)手动操作,直接生成js代码。
Change事件指代一系列用于改变场景元素的界面组件,都有哪些组件呢?比如string组件、复选框组件、布尔开关组件、单选框组件、iframe组件,都可以一一加入开发序列。
下面就来一一解析一下。首先要绑定界面组件数据,再创建面板和添加相关组件,注意在创建过程中会通过一些颜色或者动画效果来动态呈现变化,包括变色、切换等。

创建面板

// 用于界面组件数据绑定
var dataObj = {
    temperature: '30',
    checkbox: {
        'car01': true,
        'car02': false,
        'car03': false,
    },
    switch1: false,
    radio: '首页',
    iframe: 'https://www.thingjs.com'
};
// 创建面板
var panel = THING.widget.Panel({
    titleText: '面板',
    hasTitle: true,
    width: '300px'
});

添加string组件

官方示例对应温度的变化,通过文本修改来触发change事件。代码中绑定了beforechange,通过return语句终止当前函数并返回当前温度的值,change事件显示当前温度的返回值,面板中需要输入数字,并勾选所作用的物体对象。

// 添加 String 组件
var temperature = panel.addString(dataObj, 'temperature').isChangeValue(true);
// 绑定 beforeChange 事件
temperature.on('beforeChange', function (ev) {
    return confirm('改变温度设置');
})
// 绑定 change 事件
temperature.on('change', function (ev) {
    console.log('当前温度为:' + ev);
});

添加复选框组件

通过复选框来选择对象,加入颜色变化,直观呈现一个升温或者降温的效果。

// 添加 复选框 组件
var checkbox = panel.add(dataObj, 'checkbox');
for (let i = 0; i < 3; i++) {
    checkbox[i].on('beforeChange', function (ev) {
        var car = app.query(/car/)[i];
        if (ev) {
            return confirm('取消 ' + car.name + ' 红色');
        }
        else {
            return confirm(car.name + ' 变红');
        }
    });
    checkbox[i].on('change', function (ev) {
        var car = app.query(/car/)[i];
        car.style.color = ev ? '#ff0000' : null;
    });
}

添加布尔开关组件

布尔值是“真” True 或“假” False 中的一个,在3D面板中是打开与关闭雾效,设置雾效还要考虑到颜色、距离等因素。

// 添加 布尔开关 组件
var switch1 = panel.addBoolean(dataObj, 'switch1').caption('雾效');
switch1.on('beforeChange', function (ev) {
    if (ev) {
        return confirm('确定关闭雾效吗?');
    }
    else {
        return confirm('确定打开雾效吗?');
    }
})
switch1.on('change', function (ev) {
    if (ev) {
        // 设置雾效果
        app.fog = { color: '#c4c4c4', near: 0, far: 150 };
    }
    else {
        app.fog = null;
    }
})

添加单选框组件

用单选框实现切换,通过添加iframe组件,呈现切换后的页面。

// 添加 单选框 组件
var radio = panel.addRadio(dataObj, 'radio', ['首页', '教程']);
radio.on('beforeChange', function (ev) {
    if (ev == '教程') {
        return confirm('iframe 页面将切换到首页');
    }
    else {
        return confirm('iframe 页面将切换到教程');
    }
})
radio.on('change', function (ev) {
    if (ev === '首页') {
        dataObj.iframe = "https://www.thingjs.com"
    }
    else {
        dataObj.iframe = "https://www.thingjs.com/guide/cn/tutorial_Introduce/index.html"
    }
})

添加iframe组件

// 添加 Iframe 组件
var iframe = panel.addIframe(dataObj, 'iframe').setHeight("400px");

ThingJS,轻松拥有3D开发能力!

相关文章
|
JavaScript 前端开发 API
无界微前端是如何渲染子应用的?(下)
无界微前端是如何渲染子应用的?(下)
1192 0
|
5月前
|
编解码 自然语言处理 文字识别
HiDream-O1开源:8B参数像素级统一Transformer
HiDream-O1-Image是HiDream.ai开源的8B参数像素级统一生成模型,摒弃VAE与分离文本编码器,首创UiT架构实现文本、图像、任务条件在共享token空间端到端联合建模。支持2048×2048高清生成、多镜头/多语言渲染、指令编辑与主体个性化,在GenEval等基准刷新SOTA。含50步未蒸馏版与28步Dev加速版,并集成推理驱动提示代理。
1128 0
|
数据安全/隐私保护
怎么更改AD域用户账号和密码_AD域管理中那些实用的软件
在AD域管理中,用户常需重置密码,管理员也面临大量密码相关工单的困扰。为此,ADSelfService Plus作为自助工具,支持用户通过短信或邮件验证修改密码,并提供密码过期提醒功能,极大减轻管理员负担。而ADManager Plus则专注于批量处理,帮助管理员高效完成账户和密码的批量重置等任务。两者各有侧重:ADSelfService Plus侧重用户自助,ADManager Plus提升管理员效率,结合使用可显著优化AD域管理流程。
1192 4
|
7月前
|
Web App开发 人工智能 测试技术
K12场景的AI英语学习平台开发
国内K12 AI英语平台已升级为多智能体教学系统:课程编排、纠错反馈、情感陪伴Agent协同工作;融合Agentic RAG、端云协同音视频链路与自动化教育评测,兼顾精准性、合规性与低延迟交互。(239字)
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
人工智能 数据库 自然语言处理
拥抱Data+AI|DMS+AnalyticDB助力钉钉AI助理,轻松玩转智能问数
「拥抱Data+AI」系列文章由阿里云瑶池数据库推出,基于真实客户案例,展示Data+AI行业解决方案。本文通过钉钉AI助理的实际应用,探讨如何利用阿里云Data+AI解决方案实现智能问数服务,使每个人都能拥有专属数据分析师,显著提升数据查询和分析效率。点击阅读详情。
拥抱Data+AI|DMS+AnalyticDB助力钉钉AI助理,轻松玩转智能问数
|
监控 数据可视化 安全
探究架构之 - 45张图玩转Kong Gateway,建议收藏系列 (一)
探究架构之 - 45张图玩转Kong Gateway,建议收藏系列 (一)
1952 1
探究架构之 - 45张图玩转Kong Gateway,建议收藏系列 (一)
|
人工智能 自然语言处理 数据可视化
《当传统遇上AI:Tableau与PowerBI的华丽转身》
在数据可视化与分析领域,Tableau和PowerBI长期占据重要地位。随着AI技术的融入,这两款工具实现了全方位升级,极大提升了用户体验。 Tableau新增自然语言交互、智能洞察挖掘和可视化智能推荐功能,降低了数据分析门槛,帮助用户轻松发现隐藏规律并高效制作图表。PowerBI则通过DAX公式智能编写、移动端智能交互和报表智能订阅等功能,简化了复杂计算,实现了随时随地的数据洞察。两者共同开启了数据处理的新时代,为企业决策提供有力支持。
793 12
qt中编译错误:error: C2001: 常量中有换行符的解决办法
qt中编译错误:error: C2001: 常量中有换行符的解决办法
|
前端开发 UED
【Web 前端】防抖与节流的区别
【4月更文挑战第22天】【Web 前端】防抖与节流的区别