Fabricjs: оставьте один объект доступным для редактирования (другие заблокированы) до тех пор, пока он не будет выпущен программно.

Я новичок в Fabricjs, но читал документы, делал уроки.

Это очень мощная библиотека. Я вижу места, где я могу заблокировать объекты, но я хочу оставаться на выбранном объекте, а не освобождать его, щелкнув за его пределами. Я создаю версию для мобильных устройств и сенсорного экрана, и, используя свои пальцы, вы, как правило, щелкаете за пределами объекта.

В основном: выбрать объект, иметь возможность редактировать, применять свойства из палитры и иметь кнопку освобождения, поэтому он не будет выпущен до того, как пользователь закончит его редактирование.

Вы можете заблокировать отдельные элементы с помощью: canvas.item(0).selectable = false;

Но у вас все еще есть проблема с потерей выделения объекта, который вы пытаетесь редактировать, если вы щелкнете за его пределами.

Любая помощь очень ценится!


person briannyc    schedule 15.09.2013    source источник


Ответы (1)


Если я правильно вас понимаю, вам просто нужно предотвратить отмену выбора объекта, выбрав его снова, когда он будет отменен. Это можно сделать с помощью событий в Fabric:

var selectedObject;

canvas.on('object:selected', function(options) {
  selectedObject = options.target;
});

canvas.on('selection:cleared', function() {
  canvas.setActiveObject(selectedObject);
});

Я сделал простой пример (jsfiddle), чтобы продемонстрировать это.

person kangax    schedule 15.09.2013
comment
Это именно то, что я искал, и очень умно. не думал об этом так. Я расширю его, чтобы он оставался на первом выбранном объекте, но отличное начало. Благодарю вас! - person briannyc; 16.09.2013