<div width="800px">
<button style="position: absolute;top: 15px;left: 15px;width: 75px;" onclick="flyToCar()">飛到小車</button>
<button style="position: absolute;top: 45px;left: 15px;width: 75px;"
onclick="flyToBack()">返&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;回</button>
<iframe id="testMsg" style="width: 600px;height: 400px;"
src='/file/2020/08/18/20200818180118_1610.jpg flyToCar() {
var a = document.getElementById("testMsg");
var msg = {
funcName: 'test'
}
a.contentWindow.postMessage(msg, "*");
}
function flyToBack() {
var a = document.getElementById("testMsg");
var msg = {
funcName: 'test2',
param: "2"
}
a.contentWindow.postMessage(msg, "*");
}
</script>
var app = new THING.App({
url: 'https://www.thingjs.com/static/models/storehouse' // 場景地址
});
app.on('load', function (ev) {
var campus = ev.campus;
// 開啟系統層級
app.level.change(campus);
});
app.on(THING.EventType.LevelChange, function (ev) {
var obj = ev.object;
var name = obj.name;
var type = obj.type;
var id = obj.id;
var info = "進入 " + type + " (" + name + ")";
// 呼叫 使用者主頁面的 upDateInfo 方法
callFuncInMain('upDataInfo', { info, id });
})
function callFuncInMain(funcName, data) {
var message = {
'funcName': funcName // 所要呼叫父頁面裡的函式名
// 'param': data
}
// 向父窗體(使用者主頁面)傳送訊息
// 第一個引數是具體的資訊內容,
// 第二個引數是接收訊息的視窗的源(origin),即"協議 + 域名 + 埠"。也可以設為*,表示不限制域名,向所有視窗傳送
window.parent.postMessage(message, '*');
}
function changeLevel(id) {
var obj = app.query('#' + id)[0];
if (obj) {
app.level.change(obj);
}
}
window.addEventListener('message', function (e) {
var data = e.data;
var funcName = data.funcName;
var param = data.param;
window[funcName](param);
});
function test() {
var car = app.query('car01')[0];
app.camera.flyTo({
object: car,
xAngle: 0, // 繞物體自身X軸旋轉角度
yAngle: 0, // 繞物體自身Y軸旋轉角度
radiusFactor: 2, // 物體包圍盒半徑的倍數
time: 2 * 1000,
complete: function () {
console.log("飛行結束");
}
});
}
function test2(obj) {
app.camera.flyTo({
position: [50.260000000000005,35.129000000000005,59.32699999999999],
target: [8.0, -2.0, 4.0],
time: obj*1000,
complete: function () {
console.log('飛行結束')
}
});
}