如何在 two.js 中捕捉形状或组的点击事件?

How to capture a click event on a shape or group in two.js?

我使用 two.js 绘制了一个形状,我想编写代码来处理该形状上的点击事件。不是 canvas,而是形状本身。

front_left.domElement = $('#two-' + front_left.id)
    .css('cursor', 'pointer')
    .click(function(e){
        alert("Hello World!");
    });

这段代码 taken from an answer 看起来应该有效:

circle.domElement = $('#two-' + circle.id)
  .css('cursor', 'pointer')
  .click(function(e) {
    circle.fill = getNonMainRandomColor(getRandomColor());
  });

但它对我使用最新的 JQuery 和最新的 two.js 不起作用,而且它似乎也不适用于 the example,因为代码读取好像点击圆圈应该会改变颜色,但在我试过的任何浏览器或计算机上都没有任何反应。

那么,如何捕获和响应用 two.js 绘制的 shapes/groups 的点击事件?

感谢留言。这个答案不再有效的原因是 two.js 从那以后发生了变化。我添加了一个 example here。它的要点是:

  1. 使用 svg 渲染器
  2. 无论何时创建形状,它都会有一个私有 属性 _renderer
  3. 您可以访问 elem 对应的 dom 元素
  4. 但是!确保渲染器在您访问之前已经更新

例如:

var shape = two.makeCircle(two.width / 2, two.height / 2, 50);
two.update();
shape._renderer.elem.addEventListener('click', handler, false);

而且,如果您喜欢冒险,可以像 this example 中那样混合渲染器。