[英]Canceling an OpenLayers.Map current panTo tween if user begins dragging map
我注意到,如果用戶在panTo函數完成之前拖動地圖,則地圖將繼續沿前一個平移方向平移。
這是一個快速的jsfiddle,具有較高的平移持續時間,以使效果易於再現:
map.panTo( xy ); // code for jsfiddle link
如果用戶開始拖動地圖,是否有任何直接取消當前平移事件的方法?
我已修復它,盡管我不確定這是否是最好的方法。 基本上,我所做的是在地圖的moveend事件中調用panTween.stop,但還將panTween的回調設置為null,否則循環將繼續-請參見OpenLayers.Tween stop`函數: http:// trac.osgeo.org/openlayers/browser/trunk/openlayers/lib/OpenLayers/Tween.js
總之,我在init函數的末尾添加了以下三行:
map.events.register('moveend', map, function(){
this.panTween.callbacks=null;
this.panTween.stop();
});
更新的小提琴: http : //jsfiddle.net/a8kK4/62/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.