我有一个应用程序,允许用户在一个有限的时间内在织物画布上绘制 . 时间结束后,我想结束绘图模式并将绘图保存为图像 .
我的问题是,如果时间在用户仍然绘图(拖动鼠标)时结束,则绘图将消失(再次单击画布后) .
下面的小提琴示例显示了我所做的应用程序,产生问题的步骤是:
-
运行小提琴,立即开始绘画 .
-
3秒后将发生超时事件,并结束自由绘图模式 . 而且绘图将停止 .
-
再次单击画布并拖动鼠标 .
-
图纸将消失 .
代码示例:
var canvas = new fabric.Canvas("c",{backgroundColor : "#fff"});
canvas.isDrawingMode = true;
canvas.freeDrawingBrush.color = "green";
canvas.freeDrawingBrush.width = 4;
setTimeout(stop_drawing, 3000);
function stop_drawing() {
canvas.isDrawingMode = false;
}
小提琴示例:
1 回答
你可以模仿_404956中发生的事情:
在你的情况下,你只需要触发
onMouseUp
事件,所以你的函数stop_drawing将是:在我们的案例中onMouseUp将是:
让我们看看它是如何工作的_finalizeAndAddPath:
此时绘制的路径已添加到画布中 .
如果您想查看下面的代码,我已更新了您的代码段here
祝一切顺利