2014-10-03 89 views
5

好的,第一次使用銫。我有一個簡單的非高級問題,我在表單上發佈了幾次,但沒有人回覆。所以我想我會在這裏嘗試。銫WebGL相機旋轉,如何停止旋轉

我需要做的是找出如何在調用另一個事件之前停止事件。這是一個發生了什麼的例子。地球旋轉在用戶連接,但我需要它停止,如果他們然後點擊「飛我家」等。

代碼如下。

所以spinGlobe中的arg是spinRate。如果我在inital connect中傳入0.0,它將不會旋轉。完善。所以我認爲,如果點擊事件(用戶點擊飛回家)然後調用地球停止旋轉的spinGlobe(0.0)。但事實並非如此。我可以不動態更改spinRate嗎?或者,我是否全力以赴?

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); 
}); 
} 
+1

只是一個供參考我終於得到了它的工作。銫的傢伙迴應。原來我只是需要使用普通的老JS事件監聽器。無論出於什麼原因,我都會在Cesium事件監聽器文檔中看到兔子的洞!所以一切都好! 謝謝! – 2014-10-03 22:02:13

+1

你能更具體些嗎? – 2015-12-31 17:00:14

回答

0
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); 
    }); 
}