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

#events #dojo #shape #gfx

#Мероприятия #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?

Спасибо.

Ответ №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);
}