Javascript 铯WebGL相机旋转,如何停止旋转
好的,第一次用铯。我有一个简单的,非高级的问题,我在他们的表格上贴了几次,但没有人回答。所以我想在这里试试 我所需要做的就是在调用另一个事件之前找出如何停止一个事件。下面是一个正在发生的事情的例子。地球仪在用户连接上旋转,但如果他们点击“飞我回家”等,我需要它停止 代码如下 所以spinGlobe中的arg是自旋速率。如果我在初始连接上传入0.0,它将不会旋转。完美的所以我认为,如果单击事件(用户单击“飞我回家”)然后调用spinGlobe(0.0),地球将停止旋转。但事实并非如此。我可以不动态更改自旋率吗?还是我完全错了Javascript 铯WebGL相机旋转,如何停止旋转,javascript,rotation,cesium,Javascript,Rotation,Cesium,好的,第一次用铯。我有一个简单的,非高级的问题,我在他们的表格上贴了几次,但没有人回答。所以我想在这里试试 我所需要做的就是在调用另一个事件之前找出如何停止一个事件。下面是一个正在发生的事情的例子。地球仪在用户连接上旋转,但如果他们点击“飞我回家”等,我需要它停止 代码如下 所以spinGlobe中的arg是自旋速率。如果我在初始连接上传入0.0,它将不会旋转。完美的所以我认为,如果单击事件(用户单击“飞我回家”)然后调用spinGlobe(0.0),地球将停止旋转。但事实并非如此。我可以不动态
spinGlobe( 0.5 )
function spinGlobe( dynamicRate )
var previousTime = Date.now();
viewer.clock.onTick.addEventListener(function( clock ) {
var spinRate = dynamicRate;
var currentTime = Date.now();
var delta = ( currentTime - previousTime ) / 1000;
previousTime = currentTime;
viewer.scene.camera.rotate(Cesium.Cartesian3.UNIT_Z, -spinRate * delta);
});
}
仅供参考,我终于成功了。铯上的人回应道。事实证明,我只需要使用普通的旧JS事件侦听器。不管出于什么原因,我在铯事件中掉进了兔子的洞!太好了!谢谢你能说得更具体一点吗?@ScottJason:你能分享一下解决方案吗。我想更多地了解它
spinGlobe( dynamicRate ){
var previousTime = Date.now();
this.viewer.scene.postRender.addEventListener(function (scene, time){
var spinRate = dynamicRate;
var currentTime = Date.now();
var delta = ( currentTime - previousTime ) / 1000;
previousTime = currentTime;
this.viewer.scene.camera.rotate(Cesium.Cartesian3.UNIT_Z, -spinRate * delta);
});
}