我正在使用 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();
}
- 谢谢马克!!:)