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();
}
- ありがとうマーク!! :)