基本上,我已经导入了一个WebGL地球仪,并希望在我点击地球时停止旋转。
我试图让它停止:
setInterval(function() {
var c = earth.getPosition();
earth.setCenter([c[0], c[1] + 0.9]);
earth.onclick.setCenter({c[0], c[1]);
}, 50);
基本上我想摆脱+0.9
onClick。如果有帮助,还可以在下面添加带有地球对象的功能:
<script src="http://www.webglearth.com/v2/api.js"></script>
<script>
function initialize() {
var options = {atmosphere: true, center: [0, 0], zoom: 0};
var earth = new WE.map('earth_div', options);
WE.tileLayer('http://otile{s}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg', {
subdomains: '1234',
attribution: 'Tiles Courtesy of MapQuest'
}).addTo(earth);
</script>
我猜测我的语法与.onclick
无关。应该是什么呢?
答案 0 :(得分:0)
检查webglearth上的示例,onClick
定义为:
earth.on('click', callback)
所以你需要将回调函数定义为:
callback = function(){···}
或简称:
earth.on('click', function(e){···});
如果您需要停止动画,则必须在clearInterval
事件
onClick
var interval = setInterval(function() {
var c = earth.getPosition();
earth.setCenter([c[0], c[1] + 0.9]);
}, 50);
···
earth.on('click', function(){
clearInterval(interval);
});
答案 1 :(得分:-1)
根据http://www.webglearth.org/api,它应该是earth.on('click', yourCallback());
,而不是.onclick。另外,我会考虑对您的代码进行一些更改:
首先,不要一直在setatimeout函数中设置onclick处理程序。在初始化时做一次,并在超时内使用变量而不是0.9,你可以在你的onclick回调中设置为0。如果你想永远停止动画,你可以考虑突破setTimeout循环,以防你偶然发现该变量为0。
我要把实施留给你