在dojo gfx中对形状进行事件处理

时间:2011-11-07 13:19:04

标签: events dojo shape gfx

我正在创建一个表面并在其上绘制一些形状。现在做一个

dojo.connect(iSurface.getEventSource(), "mousedown", HandleMouseDown);

并且在处理程序中尝试使目标形状可移动。

HandleMouseDown(event)
{
    foo = new dojox.gfx.Moveable(event.target);
}

但是我一直得到“this.shape.connect不是函数”,我认为这是因为event.target是svg rect而不是gfx形状对象。任何人都可以帮我找到如何在事件中获取gfx形状对象而不是底层的svg对象?

感谢。

1 个答案:

答案 0 :(得分:2)

您可以提供上下文作为dojo.connect的参数:

dojo.connect(iSurface.getEventSource(), 'mousedown', {shapeObj: svgShape}, HandleMouseDown);

或者shapeObj对象属于 this

dojo.connect(iSurface.getEventSource(), 'mousedown', this, HandleMouseDown);

并在事件处理程序中使用this.shapeObj:

function HandleMouseDown(e) {
  foo = new dojox.gfx.Moveable(this.shapeObj);
}