我正在使用paperjs,当用户绘制一条线时,我希望它在穿过先前绘制的线时停止。这是我目前的测试代码:
tool.minDistance = 1;
var path;
var drawing = false;
function onMouseDown(event) {
if (!drawing) {
startLine(event);
drawing = true;
}
}
function onMouseDrag(event) {
if (drawing) {
path.add(event.point);
}
}
function onMouseUp(event) {
if (drawing) {
endLine(event);
}
}
function startLine(event) {
path = new Path();
path.strokeColor = 'black';
path.strokeWidth = 10;
path.strokeCap = 'round';
path.add(event.point);
}
function endLine(event) {
path.add(event.point);
path.smooth();
path.simplify();
path.onMouseDrag = function(event) {
if (drawing) {
console.log('ending line')
endLine(event);
}
}
drawing = false;
}
我添加了一个onMouseDrag事件来检测用户何时越过现有路径。这在大多数情况下都有效,但有时它不会触发,特别是在慢慢绘制时。
我的问题是为什么在那种情况下没有触发onMouseDrag事件?和/或有没有更好的方法来完成我想要做的事情?
答案 0 :(得分:1)