2

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

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

这段代码取自一个看起来应该可以工作的答案:

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

但它对我使用最新的 JQuery 和最新的 two.js 不起作用,并且在示例中似乎也不起作用,因为代码看起来好像点击圆圈应该使颜色发生变化但是我尝试过的任何浏览器或计算机上都没有任何反应。

那么,如何捕获并响应使用 two.js 绘制的形状/组的点击事件?

4

1 回答 1

3

感谢你的信息。这个答案不再起作用的原因是因为 two.js 从那时起发生了变化。我在这里添加了一个示例。它的要点是:

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

例如:

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

而且,如果你喜欢冒险,你可以像这个例子中那样混合渲染器。

于 2015-04-29T05:33:52.207 回答