1

我正在使用 KinectJS 创建自己的小绘图程序。一切都很顺利——直到他不得不从我的舞台/图层中移除我的形状。

我用过:

        layer.removeChildren();

这会删除所有内容。这对我的小项目来说有点多:-(我在一层上绘制多个形状。我只需要定位我的一个形状并将其删除。

这就是我在重绘之前“尝试”删除目标形状的方式:

 function drawElement(figureId) {
        figureId = Number(figureId);

        var figureOld = layer.get("#figure" + figureId)[0];

        layer.remove(figureOld);

        //I Get the shape!
        console.log(figureOld);

        var fillColor = "blue";
        var strokeColor = "red";

        var targetedFigure = figuresArray[figureId];

        var userElement = new Kinetic.Shape({
            drawFunc: function (canvas) {
                var context = canvas.getContext();
                context.beginPath()
                $.each(targetedFigure.coords, function (i, item) {
                    context.lineTo(item.x, item.y);
                });
                context.closePath();
                canvas.fillStroke(this);
            },
            fill: fillColor,
            stroke: strokeColor,
            strokeWidth: 1,
            id: "figure" + figureId,
        });

        layer.add(userElement);
        stage.add(layer);
}

感谢您的时间 :-)

更新,改变:

layer.remove(figureOld);

if (figureOld) {
   figureOld.remove();
}
  • 谢谢马克!!:)
4

1 回答 1

0

您可以像这样删除任何特定形状: figureOld.remove();

于 2013-05-15T23:27:25.893 回答