Javascript 更改KineticJS中的拖动目标

Javascript 更改KineticJS中的拖动目标,javascript,jquery,html,canvas,kineticjs,Javascript,Jquery,Html,Canvas,Kineticjs,是否可以在单击第一个对象时将要拖动的对象切换到另一个对象 问题:在下面的JSFIDLE中,当拖动红色圆圈时,它会变为蓝色矩形,但不响应初始拖动。必须在蓝色矩形上进行第二次拖动才能拖动它 所需:它应该从红色圆圈变为蓝色矩形,蓝色矩形应该立即平滑地跟随拖动运动 尝试:我尝试了。模拟事件,但似乎不起作用。有什么想法吗 circle.on('dragmove', function(e) { circle.simulate('click'); // used click handler to

是否可以在单击第一个对象时将要拖动的对象切换到另一个对象

问题:在下面的JSFIDLE中,当拖动红色圆圈时,它会变为蓝色矩形,但不响应初始拖动。必须在蓝色矩形上进行第二次拖动才能拖动它

所需:它应该从红色圆圈变为蓝色矩形,蓝色矩形应该立即平滑地跟随拖动运动

尝试:我尝试了。模拟事件,但似乎不起作用。有什么想法吗

circle.on('dragmove', function(e) { 
    circle.simulate('click');  // used click handler to change into a blue rectange
    circle.simulate('dragend'); // (FAILED) stop dragging red circle
    rectangle.simulate('dragmove');     // (FAILED) start dragging blue rectangle
});
JSFIDDLE:

我为你更新了这个。 从本质上讲,您是删除圆,然后在圆上模拟事件,然后在矩形上模拟事件

// Show BLUE rectangle on clicking RED circle, Hide RED circle, start dragging rectangle

circle.on('dragstart mousedown', function(e) { 
   layer.add(rectangle); 
   circle.remove();
   rectangle.simulate('mousedown');
   rectangle.simulate('dragstart');     
});