обработка событий фигур в dojo gfx

Я создаю поверхность и рисую на ней несколько фигур. Сейчас делаю

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

и во время обработчика, пытающегося сделать целевую фигуру подвижной.

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

Однако я продолжаю получать «this.shape.connect не является функцией», я думаю, это связано с тем, что event.target является прямоугольником svg, а не объектом формы gfx. Может ли кто-нибудь помочь мне найти, как мне получить объект формы gfx в событии вместо базового объекта svg?

Спасибо.


person user1033793    schedule 07.11.2011    source источник


Ответы (1)


Вы можете указать контекст в качестве аргумента для dojo.connect:

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

или если объект shapeObj принадлежит этому:

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

и иметь this.shapeObj в обработчике событий:

function HandleMouseDown(e) {
  foo = new dojox.gfx.Moveable(this.shapeObj);
}
person Jesus Crysist    schedule 08.11.2011