Моделирование события mousemove

Слушатель документа «mousemove» в qooxdoo блокируется в последней версии OpenLayers (2.13 и 2.13.1) при перемещении курсора по карте. Я думал, что смогу обойти это, слушая прослушиватель «mousemove» OpenLayers и просто имитируя событие mousemove на основе этого, но их событие отличается от того, что ищет qooxdoo. Поэтому я попытался использовать qx.event.type.Mouse() для имитации события mousemove; он частично работает, но нарушает возможность панорамирования карты и выдает эту ошибку (Uncaught TypeError: Cannot read property 'pageX' of undefined Mouse — строка 229). Какие-либо предложения?

// OpenLayers mousemove Listener
var events = me.map.events;
events.register("mousemove",me.map, function(e){
        var e = new qx.event.type.Mouse();
        console.log("Attempt to make a Qooxdoo mouse position at OpenLayers location", e);
        me.mouseoverPopup.placeToMouse(e);
        return true;
},true); 

// Qooxdoo document mousemove listener
//   ** this was my old standard but OL 2.13 blocks this from occurring when
//      I move over the map.
qx.bom.Element.addListener(document, "mousemove", function(e)
{         
   me.mouseoverPopup.placeToMouse(e);         
}, this);

person Jonathan    schedule 10.07.2013    source источник


Ответы (1)


Событие мыши qooxdoo должно быть инициализировано собственным объектом события, чтобы получить координаты мыши и другую информацию. Попробуй это:

events.register("mousemove",me.map, function(e){
        var qxE = new qx.event.type.Mouse();
        qxE.init(e);
        console.log("Attempt to make a Qooxdoo mouse position at OpenLayers location", e);
        me.mouseoverPopup.placeToMouse(qxE);
        return true;
},true); 
person Daniel Wagner    schedule 11.07.2013
comment
Спасибо большое! Это сработало чудесно! Я забыл о методах наследования! - person Jonathan; 11.07.2013