0

こんにちは。X.Caption を右クリックしたときにのみ有効にしたいので、マウス イベントを変更するにはどうすればよいでしょうか。どうもありがとうございます

4

3 に答える 3

0

方法が多すぎると思います。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
    }
  }
}
于 2012-07-31T10:31:47.857 に答える
0

私が正しければ (他の貢献者の皆さん、恐れずに訂正してください)、必要に応じて XTK の内部を編集する必要があるかもしれません。XTK には、Google Closure Library から取得されるやX.event.jsなどのイベント用に定義された「コントロール」があります。Google Closure Library を詳しく調べたわけではありませんが、ほとんどの場合、、、および. Javascriptに組み込み、独自のクリック イベントまたはそれに関連する何かを定義して、Google Closure Library をもう少し調べることができます。HoverEventPanEventX.captionGoog.ui.TooltipGoog.ui.PopupGoog.ui.PopupBaseGoog.eventsGoog.events

上記の小さな段落に書いたことが完全に正しくない場合、またはそのようなものである場合は、クリックするための基本的な Javascript DOM イベントがもちろんあります。XTK はレンダリングに WebGL を使用するため、これらが XTK でどのように機能するかはよくわかりません。基本的なイベントはhttp://www.w3schools.com/jsref/dom_obj_event.aspで確認できます。自分で解決策を見つけた場合は、XTK に貢献してください。

于 2012-07-30T20:16:09.410 に答える
0

次の JSFiddle は、その方法を示しています。ツールチップなどを実際に表示するには、jQuery UI などの任意の JS ライブラリを使用できます。

http://jsfiddle.net/haehn/ZpX34/

于 2012-08-08T17:59:35.747 に答える