ThingJS那些笔记

创建
var equipment = app.create({
type: ‘Thing’,
url: ‘models/truck/’,
name: ‘我的卡车’,
id: ‘31415926’,
position: [-5, 0, 7],
complete: function(ev) {
console.log(ev.object.name + ’ created!’);
}
});
事件
// 选择室外所有物体 + 所有建筑
var objs = app.query(’.Building’).add(campus.things);

// 改变颜色
objs.on('mouseenter', function (ev) {
	ev.object.style.color = '#ff0000';
});

// 还原颜色
objs.on('mouseleave', function (ev) {
	ev.object.style.color = null;
});

物体效果

改变透明度
car.style.opacity = 0.5 + 0.5 * Math.sin(2 * app.elapsedTime / 1000);
}, ‘每帧改变透明度’);

// 设置勾边颜色
car1.style.outlineColor = ‘#ff0000’;

//渐隐渐现
app.camera.fit(car);

new THING.widget.Button('渐隐', function () {
	car.fadeOut({
		time: 1000, // 时间 毫秒
		// 渐隐完成后的回调函数
		complete: function (ev) {
			console.log(ev.object.visible);
		}
	});
});

new THING.widget.Button('渐现', function () {
	car.fadeIn({
		time: 1000,
		complete: function (ev) {
			console.log(ev.object.visible);
		}
	});
})

请求本地json的时候右击文件显示全部路径,线上和本地开发不一样

鼠标拾取物体和选择
// 鼠标拾取物体显示边框
app.on(THING.EventType.MouseEnter, ‘.Thing’, function(ev) {
ev.object.style.outlineColor = ‘#FF0000’;
});
// 鼠标离开物体边框取消
app.on(THING.EventType.MouseLeave, ‘.Thing’, function(ev) {
ev.object.style.outlineColor = null;
});
// 每一帧判断拾取的物体是否发生变化
app.on(‘update’, function () {
if (app.picker.isChanged()) {
console.clear();
// 打印当前被pick的物体
if (app.picker.objects[0]) {
console.log('当前拾取的物体 ’ + app.picker.objects[0].name);
}
// 打印之前被pick的物体
if (app.picker.previousObjects[0]) {
console.log('之前拾取的物体 ’ + app.picker.previousObjects[0].name);
}
}
});
selection 选择

app.on(THING.EventType.Select, '.Thing', function (ev) {
    // 将选中的物体颜色进行改变
    ev.object.style.color = "#ff0000";
});
app.on(THING.EventType.Deselect, '.Thing', function (ev) {
    // 取消物体选中时,颜色取消改变
    ev.object.style.color = null;
});

摄像机

//聚焦物体
var car = app.query(‘car01’)[0];
app.camera.fit(car);

// 设置摄像机位置和目标点
// 可直接利用 代码块——>摄像机——>设置位置
app.camera.position = [-10.179597135589418, 57.92056475377832, -69.93170920109229];
app.camera.target = [8.694689127408054, -7.003812939834516, 11.51772904610059];

// 摄像机飞行到某物体
app.camera.flyTo({
‘object’: car,
// ‘xAngle’: 30, //绕X轴旋转的角度
// ‘yAngle’: 60, //绕Y轴旋转的角度
// ‘radiusFactor’:3, //物体包围球半径的倍数
‘time’: 2 * 1000,
‘complete’: function () {
console.log(‘飞行结束’);
car.style.color = null;
}
});
//环绕物体,围绕car在5秒内旋转180度
app.camera.rotateAround({
object: car,
time: 5000,
yRotateAngle: 180
});

顶视图
app.camera.viewMode = THING.CameraView.TopView;
3D视图
app.camera.viewMode = THING.CameraView.Normal;

// 设置摄像机俯仰角度范围[最小值, 最大值]
app.camera.xAngleLimitRange = [0, 90];
// 设置摄像机水平角度范围[最小值, 最大值]
app.camera.yAngleLimitRange = [30, 60];
// 禁用、启用旋转 默认为 true 开启
app.camera.enableRotate = !app.camera.enableRotate
// 禁用/启用 平移 默认为 true 开启
app.camera.enablePan = !app.camera.enablePan;
// 禁用/启用 平移 // 默认为 true 开启
app.camera.enableZoom = !app.camera.enableZoom

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值