如何更改[XTK]中的事件

时间:2012-07-30 18:28:22

标签: xtk

您好 我想知道如何更改我的鼠标事件 因为我想X.Caption只有在我右击它时才会激活。 非常感谢

3 个答案:

答案 0 :(得分:0)

如果我是对的(其他贡献者,不要害怕纠正我),您可能需要根据需要编辑XTK的内部。 XTK在X.event.js中定义了“控件”,用于从Google Closure Library获取的HoverEventPanEvent等事件。您可以更多地查看Google Closure库,因为我尚未对其进行全面审核,但X.caption主要来自Goog.ui.Tooltip,可以与来自Goog.ui.Popup,{{1}的事件一起使用}和Goog.ui.PopupBase。您可以尝试将Goog.events添加到您的Javascript中,并定义您自己的点击事件或与之相关的内容,并查看Google Closure Library。

如果我刚刚在上面的小段落中写的不完全正确或类似的东西,当然有基本的Javascript DOM事件点击。我不太确定它们如何与XTK一起使用,因为XTK使用WebGL进行渲染。您可以在http://www.w3schools.com/jsref/dom_obj_event.asp查看基本活动。如果您找到适合自己的解决方案,我们非常欢迎您将其贡献给XTK。

答案 1 :(得分: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
    }
  }
}

答案 2 :(得分:0)

以下JSFiddle显示了如何做到这一点。要实际显示工具提示等,您可以使用任何JS库,如jQuery UI。

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