在画布中移动已创建的矩形

问题描述 投票:1回答:1

我试图通过单击并拖动对象来移动画布中的项目。我正在使用paperjs。这是我的代码:

我画了一个矩形如下:

 var rect = new paper.Path.Rectangle(new paper.Point(100, 100), new  paper.Point(200, 250));
    rect.strokeColor = 'black';
    rect.fillColor = 'red';
    rect.strokeWidth = 5;

要移动矩形,我正在创建一个Tool并将事件附加到它。

onSelectShape(){
        const self = this;
        const hitOptions = {
          segments: true,
            stroke: true,
            fill: true,
      tolerance: 5
        };


        const toolSelect = new paper.Tool();
        toolSelect.activate();


        let segment, path;
        toolSelect.onMouseDown = function(event) {

            const hitResult = self.project.hitTest(event.point, hitOptions);
      console.log(hitResult);
            if (!hitResult){
                return;
            }
            if (hitResult) {
                path = hitResult.item;
            }

        };

        toolSelect.onMouseMove = function(event) {
            self.project.activeLayer.selected = false;
            if(event.item){
                event.item.selected = true;
            }
        };

        toolSelect.onMouseDrag = function(event) {

            if (path) {

                path.position += event.delta;
            }
        };
    }

这是完整的Stackblitz链接。我不确定为什么它不起作用。任何帮助将受到高度赞赏

canvas paperjs
1个回答
0
投票

第31行改变

const self = this; 

const self = paper.project;

第69行改变

path.position += event.delta;

path.position = path.position.add(event.delta);
© www.soinside.com 2019 - 2024. All rights reserved.