Обработка событий на фигурах в 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);
}