Removing objects from a layer using KineticJS

user1724623 picture user1724623 · Oct 6, 2012 · Viewed 14.4k times · Source

I am currently working a project involving KineticJS.

I have to dynamically create and delete shapes constantly, but cannot seem to figure out how to do the latter. I've been trying to do:

 $ myLayer.remove(myShape)

because this is what most posts seem to recommend. But, the documentation says that this will remove the layer from the stage and not the shape from the layer. When I try this in project it in fact removes the layer from the stage.

So am I doing something wrong or is there some other way to remove a shape from a layer?

Answer

BenMQ picture BenMQ · Dec 16, 2012

There are two functions that may be helpful.

  • childContainer.remove() removes the childContainer from it's parent.
  • parentContainer.removeChildren() removes all the children from this container.

Edit: This can also apply to shapes. Simply redraw the layer.

myShape.remove();
myLayer.draw();