我想要实现的是在画布上克隆一个项目,然后单击它并拖动克隆而不释放鼠标。如何在Paper.JS中手动分派事件?
menuItem.onMouseDown = function(event){
var clone = this.clone();
clone.onMouseDrag = function(event){
this.position+=event.delta;
console.log(event);
}
var ev = new MouseEvent('mousedrag',
event.event);
ev.event.type="mousemove";
ev.delta={x:0,y:0};
ev.target=clone;
ev.point=event.point;
clone.emit('mousedrag',ev);
};
我试过这个,我相信我需要这样的东西。所以当我点击menuItem
时,我克隆它,并为克隆设置事件,然后在其上设置事件emit
。但是排出的事件需要设置,这就是我的想法分崩离析的地方。对此有任何想法?
这似乎解决我的问题,但感谢的线索,我会看看ToolEvent在github – godzsa
所以,你在做什么,不拖克隆,但拖动原来的克隆并放置它的位置? – Aron
是的,然后用鼠标将它们交换回来。如果我从头开始编码,我会使用'view.on('mousedown',...)'和mousedrag,mouseup来避免重叠另一个的情况等。我不需要切换处理程序,因为事件是整个视图。但是我需要在鼠标上做我自己的测试 - 除非有大量的menuItem,否则不是什么大问题。 – bmacnaughton