删除使用paperJS创建的特定形状

时间:2013-06-05 06:33:01

标签: javascript html5 html5-canvas paperjs

我创建了一个带圆,矩形和直线的简单图像标记。我怎样才能删除我不需要的形状。我在数组中存储了坐标点。我该如何处理任何帮助。 Here is the fiddle

这是推入数组的功能

function onMouseUp(event) {
            console.log(cPath.points[0]);
            console.log(cPath.downpoints[0]);
            if(set == 1){
                i++;
                circles.push(circle);
                createElem('circle', i);
                cPath.points.push(event.point);
                cPath.downpoints.push((event.downPoint - event.point).length);
            }else if(set == 2){             j++;
                rects.push(rect);
                createElem('rect', j);
            }else if(set == 3){
                k++;
                lines.push(line);
                createElem('line', k);  
            }else if(set == 4){
                l++;
                createElem('Free Path', l);
            }
        };

1 个答案:

答案 0 :(得分:0)

根据paperjs documentation路径有一个remove() method,它会从您的paperjs文档中删除路径

当您在数组中保存所有项目(路径)时,从画布中删除它们相对容易。这是一个示例javascript片段,它将删除给定数组中的所有项目:

function removeItems(items) {
    var len = items.length;
    while(--len < -1) {
       // remove item from the document using paperjs method
       items[len].remove();
       // also remove the item from our own array
       items.splice(len, 1);
    }
}

http://jsfiddle.net/PLzDC/3/
这是一个小提琴,展示了如何在绘制圆圈时删除所有矩形(它在mouseUp上删除它们)

修改

摘要删除仅具有给定数组的给定名称的项目

function removeItems(items, name) {
    var len = items.length;
    while(--len < -1) {
       if(items[len].name == name) {
            // remove item from the document using paperjs method
            items[len].remove();
            // also remove the item from our own array
            items.splice(len, 1);
       }
    }
}

用法(考虑到你在创作时实际上给圆圈命名'circle1'):

removeItems(circles, 'circle1');