//加载场景代码
var app = new THING.App({
// 场景地址
"url": "http://www.thingjs.com/./uploads/wechat/5buW6IyC5b2s/scene/CB20190121182605",
//背景设置
"skyBox" : "BlueSky"
});
app.on('load', function () {
renderHydrant();//渲染消防栓
});
var panel = null;// 统计面板
//仿造消防栓数据
var demoData = [
{
id: 1,
position: [-60, 0, 0],
angle: 0,
title: null,
wed: null,
},
{
id: 2,
position: [26, 0, 20],
angle: 0,
title: null,
wed: null,
},
{
id: 3,
position: [60, 0, 42],
angle: 0,
title: null,
wed: null,
}
];
var demoDataInfo = [
{
title: '阀门_001',
open: true,
},
{
title: '阀门_002',
open: false,
},
{
title: '阀门_003',
open: true,
}
];
function renderHydrant(){
for(var i=0;i<demoData.length;i++){
// 创建Thing
var obj = app.create({
type: 'Thing',
name: '消防栓_01',
id: demoData[i]['id'],
url: 'http://model.3dmomoda.com/models/298638300036400398675e7e4c35ef61/0/gltf/',
// 模型地址
position: demoData[i]['position'],
// 位置
angle: demoData[i]['angle'],
});
}
}
// 给所有建筑对象,添加鼠标滑过事件
app.on('mouseon', '.Thing', '#0000FF', function (ev) {
this.style.outlineColor = ev.data;
});
app.on('mouseoff', '.Thing', function (ev) {
this.style.outlineColor = null;
});
app.on('click', '.Thing', '#0000FF', function (ev) {
var uiAnchor = changeText(this);
});
function changeText(obj){
// 创建widget (绑定数据用)
var panel = new THING.widget.Panel({
// 模板样式
template: 'default',//模板样式提供两个样式 default 和 default2
// 设置面板宽度
width: '160px',
//cornerType 角标样式
//没有角标none,没有线的角标noline,折线角标polyline,直线角标straightline
cornerType: 'polyline'
});
var id_data = obj.id; //获取id值
var dataObj = demoDataInfo[id_data - 1];//根据id值获取到所需的对象;
//绑定物体身上相应的属性数据
panel.addString(dataObj, 'title').caption('名称');
var CheckBoxChange = panel.addBoolean(dataObj, 'open').caption('开关');
CheckBoxChange.on('change',function(ev){
console.log(ev,id_data);
})
// 创建UIAnchor面板
var uiAnchor = app.create({
// 类型
type: 'UIAnchor',
// 父节点设置
parent: obj,
// 要绑定的页面的 element 对象
element: panel.domElement,
// 设置 localPosition 为 [0, 0, 0]
localPosition: [0, 0, 0],
// 指定页面的哪个点放到localPosition位置上(百分比)
pivot: [-0.15, 2.1]
});
// 将对应的 Panel 存下来 便于后续使用
uiAnchor["panel"]=panel;
return uiAnchor;
}