2014-10-03 11 views
5

OK, zuerst mit Caesium. Ich habe eine einfache, nicht fortgeschrittene Frage, die ich ein paar Mal auf ihren Formularen gepostet habe, aber niemand antwortet. Also dachte ich, ich würde es hier versuchen.Cäsium-WebGL-Kamera drehen, wie man die Rotation stoppt

Alles, was ich tun muss, ist herauszufinden, wie Sie ein Ereignis stoppen, bevor Sie ein anderes aufrufen. Hier ist ein Beispiel für das, was passiert. Der Globus dreht sich auf Benutzer-Verbindung, aber ich brauche es zu stoppen, wenn sie dann auf "Flieg mich nach Hause", etc.

Code unten klicken.

Also der Arg in SpinGlobe ist die SpinRate. Wenn ich 0.0 an der Anfangsverbindung übergebe, rotiert es nicht. Perfekt. Ich dachte also, wenn ein Klick-Event (Benutzer klickt mich nach Hause) dann SpinGlobe (0.0) anruft, würde der Globus aufhören zu rotieren. Aber das tut es nicht. Kann ich die spinRate nicht dynamisch ändern? Oder mache ich das alles falsch?

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

Just an FYI habe ich es endlich funktioniert. Die Jungs über Cäsium haben geantwortet. Es stellte sich heraus, dass ich nur einfache alte JS Event Listener verwenden muss. Aus welchem ​​Grund auch immer, ich ging in den Caesium-Event Listener Docs ein Kaninchenloch runter! Also alles gut! Danke! –

+1

Können Sie bitte genauer sein? –

Antwort

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); 
    }); 
} 
Verwandte Themen