我们在这里设置了一个设置,我们希望能够使用鼠标手动控制3D场景,还可以从代码中以编程方式控制3D场景。 例如:使用鼠标控制(主)客户端应用程序,并将新的场景定位信息发送到服务器,服务器将其转发给其他(侦听)客户端。然后,其他(从属)客户端应用程序需要自行更新,以便它们显示与启动客户端相同的配置。
我们遇到的问题如下:
当使用鼠标控制场景时,只要检测到位置变化,TrackballControls就会从其更新功能中调度更改事件。这对于(主)客户端应用程序来说很好,因为它可以获取当前的定位信息,将其打包并通过服务器发送。
然而,当我们从代码调整另一个(从属)客户端应用程序的TrackballControls中的定位信息时,这本身也会生成一个新的"定位已更改" update()中的事件(在动画循环中调用)。
那么:当我们以编程方式从代码设置新信息时,有没有办法阻止TrackballControls调度更改事件?
或者更一般地说:在没有用户交互的情况下,在没有触发变更事件的情况下,从代码中设置TrackballControls中的新定位信息的最佳方法是什么?它应该被动地应用新设置,以便它变得可见,但不会触发任何新的更改事件。
感谢您的任何见解!