如何在two.js中捕获形状或组上的单击事件?

时间:2015-04-23 03:11:03

标签: javascript jquery two.js

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

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绘制的形状/组的点击事件?

1 个答案:

答案 0 :(得分:2)

感谢您留言。这个答案不再起作用的原因是因为自那以后two.js发生了变化。我添加了example here。它的要点是:

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

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

    而且,如果您喜欢冒险,可以混合使用this example中的渲染器。