0

qooxdoo の「mousemove」ドキュメント リスナーは、カーソルがマップ上に移動すると、最新バージョンの OpenLayers (2.13 および 2.13.1) でブロックされます。OpenLayers の「mousemove」リスナーを聞いて、それに基づいて mousemove イベントをシミュレートすることで、これを回避できると考えましたが、それらのイベントは qooxdoo が探しているものとは異なります。そこで、qx.event.type.Mouse() を使用して mousemove イベントをシミュレートしようとしました。部分的に機能しますが、マップのパン機能が壊れ、このエラーがスローされます (Uncaught TypeError: 未定義のマウスのプロパティ 'pageX' を読み取れません - 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);
4

1 に答える 1

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); 
于 2013-07-11T07:07:29.160 に答える