Итак, я могу нарисовать прямоугольник на своем холсте с помощью функции mouseUp, но мне нужно иметь возможность потом переместить их в другое положение, но я не могу понять, как снова получить прямоугольник после его создания.
mouseDown для инициализации mouseUp:
function handleMousedown(_client: MouseEvent): void {
let isLeftClicked = _client.button == 0;
if (!isLeftClicked) return;
if (_client.offsetX > xButton1 &&
_client.offsetX < xButton1 + wButton1 &&
_client.offsetY > yButton1 &&
_client.offsetY < yButton1 + hButton1) {
let rectangleDraw = new Draw(0, 0);
let rectangle = new Rectangle(0, rectangleDraw);
currentRectangle = rectangle;
rectangleArray.push(rectangle);
window.addEventListener("mousemove", handleMousemoveRectangle);
window.addEventListener("mouseup", handleMouseup);
}
Это функция рисования при UP:
function handleMouseup(_client: MouseEvent): void {
dragged = true;
if (dragged) {
setTimeout(() => {
dragged = false;
}, 10);
}
for (let rectangle of rectangleArray) {
currentRectangle = rectangle;
console.log("drawn");
rectanglePresent = true;
currentRectangle.draw2();
}
window.removeEventListener("mousemove", handleMousemoveRectangle);
window.removeEventListener("mouseup", handleMouseup);
rectangleDragged = false;
}
Это функция для перемещения currentRectangle:
export function handleMousemoveRectangle(event: MouseEvent): void {
currentRectangle.position.x = event.offsetX;
currentRectangle.position.y = event.offsetY;
rectangleDragged = true;
dragged = true;
console.log();
}