Я работаю над приложением, в котором пользователь может создавать несколько блоков на холсте, сохранять координаты каждого блока (сверху, слева, ширина, высота) в базе данных по отдельности, а затем извлекать их обратно на холст, когда это необходимо. обновить свою позицию. Я могу сделать все это, кроме обновления положения коробки.
Например. Допустим, пользователь выбирает «box1»: 1) canvas.on ('mouse: down', function (evt) {}); - дает текущие координаты для box1, который соответствует записи в базе данных.
2) canvas.on ('object :ified', function (evt) {}); - дает новые координаты для box1, которые я могу использовать для обновления полей базы данных.
Единственная проблема заключается в том, что если пользователь выбирает box1, перетаскивает его куда-то, сбрасывает и снова перетаскивает на новую позицию. Я теряю исходное значение (так как он щелкнул мышью: дважды для box1) и, таким образом, не могу окончательно определить, какое поле было обновлено относительно базы данных.
Ниже приведен фрагмент кода:
window.addRect = function() {
var box = new fabric.Rect({
left: 0,
top: 0,
stroke: 'red',
fill: 'rgba(255,0,0,.4)',
width: 50,
height: 50,
});
box.hasRotatingPoint = false;
canvas.add(box);
}
canvas.on('object:modified', function (evt) { // for updated values
var modifiedObject = evt.target;
console.log('modifiedObject: ' + modifiedObject.get('left'), modifiedObject.get('top'), modifiedObject.getScaledWidth(), modifiedObject.getScaledHeight());
});
canvas.on('mouse:down', function (evt) { // for original values
var downObject = evt.target;
console.log('downObject: ' + downObject.get('left'), downObject.get('top'), downObject.getScaledWidth(), downObject.getScaledHeight()); });
Есть ли что-нибудь, кроме мыши: вниз и объект: изменено, что я могу использовать? Я ищу решение в Ext js.