1

KinectJS を使用して、独自の小さな描画プログラムを作成しています。彼が私のステージ/レイヤーから私のシェイプを削除しなければならなくなるまで、すべてがうまくいっています.

私が使用した:

        layer.removeChildren();

これはすべてを削除します。私の小さなプロジェクトには多すぎます :-( 1 つのレイヤーに複数の図形を描画しています。図形の 1 つだけを対象にして、それを削除する必要があります。

これは、ターゲットシェイプを再描画する前に、ターゲットシェイプを削除しようとする方法です。

 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

次のように特定の形状を削除できます。

于 2013-05-15T23:27:25.893 に答える