こんにちは。X.Caption を右クリックしたときにのみ有効にしたいので、マウス イベントを変更するにはどうすればよいでしょうか。どうもありがとうございます
3 に答える
方法が多すぎると思います。xtk ソース コードを変更し、独自のバージョンまたは次のようなものをコンパイルします。
window.onload = function() {
myrenderer.config.HOVERING_ENABLED = false; // disabling show caption on mousehover
var mouse_x, mouse_y;
myrenderer.interactor.onMouseMove = function(event) {
mouse_x = event.offsetX;
mouse_y = event.offsetY;
}
myrenderer.interactor.onMouseDown = function(left,middle, right) {
if (right) {
var picked_id = myrenderer.pick(mouse_x, mouse_y);
if (picked_id==-1) throw new Error("No object");
var picked_object = myrenderer.get(picked_id);
var mycontainer = myrenderer.container;
var caption = new X.caption(mycontainer,mycontainer.offsetLeft + mouse_x + 10, mycontainer.offsetTop + mouse_y + 10,myrenderer.interactor);
caption.setHtml(picked_object.caption);
// use settimeout or something else to destroy the caption
}
}
}
私が正しければ (他の貢献者の皆さん、恐れずに訂正してください)、必要に応じて XTK の内部を編集する必要があるかもしれません。XTK には、Google Closure Library から取得されるやX.event.js
などのイベント用に定義された「コントロール」があります。Google Closure Library を詳しく調べたわけではありませんが、ほとんどの場合、、、および. Javascriptに組み込み、独自のクリック イベントまたはそれに関連する何かを定義して、Google Closure Library をもう少し調べることができます。HoverEvent
PanEvent
X.caption
Goog.ui.Tooltip
Goog.ui.Popup
Goog.ui.PopupBase
Goog.events
Goog.events
上記の小さな段落に書いたことが完全に正しくない場合、またはそのようなものである場合は、クリックするための基本的な Javascript DOM イベントがもちろんあります。XTK はレンダリングに WebGL を使用するため、これらが XTK でどのように機能するかはよくわかりません。基本的なイベントはhttp://www.w3schools.com/jsref/dom_obj_event.aspで確認できます。自分で解決策を見つけた場合は、XTK に貢献してください。
次の JSFiddle は、その方法を示しています。ツールチップなどを実際に表示するには、jQuery UI などの任意の JS ライブラリを使用できます。