Перемещение ранее нарисованного прямоугольника на холсте - PullRequest
0 голосов
/ 02 августа 2020

Итак, я могу нарисовать прямоугольник на своем холсте с помощью функции 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();
    
    
}
...