2台机子 krpano 视角同步 鼠标拖动同步

vrshow.js为启动函数文件

增加视角监听函数:

var krpanoAbc = null;
var socket = null;
const isctr = getQueryParam('isctr');
console.log(isctr)

//获取URL参数
function getQueryParam(paramName) {
	const urlParams = new URLSearchParams(window.location.search);
	return urlParams.get(paramName);
}
//监听视角以及鼠标拖动,并发送websocket消息
function myviewchange(vlookat, hlookat, fov) {
	if (isctr == 1)  {
		socket.emit("Broadcast", {
			type: 'ViewSet',
			data: { vlookat, hlookat, fov }
		});
	}
}
//接收websocket消息改变视角
function ViewSet(arg)
{
	if (!krpanoAbc) {
		krpanoAbc = document.getElementById('krpanoSWFObject');
	}
	if (krpanoAbc){
		krpanoAbc.set("view.hlookat", arg.data.hlookat );
		krpanoAbc.set("view.vlookat", arg.data.vlookat );
		krpanoAbc.set("view.fov", arg.data.fov );
	}
}
function socketInit(){
   var url = `ws://127.0.0.1:3008`;
    socket = io.connect(url, {
        reconnectionAttempts: 30000000,
        query: {
            type: 'browser'
        }
    });
    socket.on('Broadcast', (obj) => {
        if (obj.sender != socket.id) {
            ViewSet(obj.data);
        }
    });
    socket.on('connect', () => {
        console.log(socket.id, '已连接!');
    });
}
socketInit();

在tour.xml中添加视角监听函数

<events onviewchange="myviewchange()" />
<action name="myviewchange">js(myviewchange(get(view.vlookat),get(view.hlookat),get(view.fov)));</action>
//更改控制模式
<action name="startup" autorun="onstart">
    skin_changecontrolmode();
</action>

离线包的json数据:static/js/data.js

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值