我有一个关于如何根据 x 和 y 坐标定位形状的问题。
我尝试了以下方法:
var shapes = JSON.parse('<%=jsonArray%>');
for (var i = 0; i < shapes.length; i ++ ){
var shape = shapes[i];
var scale = 1;
console.log(shape.type)
var date = shape.id;
var rectangle = new Konva.Rect({
numPoints: 5,
innerRadius: 30,
outerRadius: 50,
fill: "#89b717",
opacity: 0.8,
draggable: true,
name: '-RECTANGLE',
width: 128,
id: date,
height: 50,
scale: {
x: scale,
y: scale
},
shadowColor: "black",
shadowBlur: 4,
shadowOffset: {
x: 5,
y: 5
},
shadowOpacity: 0.6,
// custom attribute
startScale: scale
});
rectangle.setOffset({
x: rectangle.width() / 2,
y: rectangle.height() / 2
});
rectangle.absolutePosition ({
x: parseInt(shape.x),
y: parseInt(shape.y)
});
}
和存储位置的方法:
stage.on("dragend", function(evt) {
var shape = evt.target;
// CLEAR: update nilai posisi x
elementX.value = shape.x();
// CLEAR: update nilai posisi y
elementY.value = shape.y();
// CLEAR: update nilai shape id
elementID.value = shape.id();
elementShapeType.value = shape.name();
shape.moveTo(layer);
stage.draw()
});
但是上面的方法不起作用,形状位置与原始位置不匹配。
我不知道这个问题,任何建议或帮助将不胜感激。