У меня есть приложение, которое позволяет пользователю рисовать полотно ткани в течение ограниченного периода времени. По истечении времени я хотел бы закончить режим рисования и сохранить рисунок, сделанный как изображение.fabric.js - Закончить свободный режим рисования во время перемещения мыши
Моя проблема в том, что если время заканчивается, пока пользователь все еще рисует (перетаскивая мышью), рисунок исчезнет (после повторного щелчка по холсту).
Ниже скрипку пример показывает применение я сделал, и шаги, которые продуцируют проблемы являются:
- Запуск скрипку, и сразу же начать рисовать.
- Через 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;
}
Fiddle пример:
https://jsfiddle.net/usaadi/808x5d20/1/
Спасибо! Я попытался использовать jQuery trigger, чтобы вызвать событие mouse up, но это не сработало. Кажется, что нужно найти исходный код, чтобы найти решение. –
Существует небольшая проблема с кодом. Если мы добавим код javascript после onMouseUp(), он не будет запущен, если мы ничего не нарисовали. [Ссылка] (https://jsfiddle.net/a48dtp6a/). –
Есть небольшая проблема с кодом. Если мы добавим код javascript после onMouseUp(), он не будет запущен, если мы ничего не нарисовали. [Ссылка] (https://jsfiddle.net/a48dtp6a/). Решение состоит в том, чтобы поставить условие вокруг вызова onMouseUp(). if (canvas._isCurrentlyDrawing) { canvas.freeDrawingBrush.onMouseUp(); } –