Javascript 使用KineticJS从层中删除对象

Javascript 使用KineticJS从层中删除对象,javascript,html5-canvas,kineticjs,Javascript,Html5 Canvas,Kineticjs,我目前正在从事一个涉及KineticJS的项目 我必须不断地动态地创建和删除形状,但似乎不知道如何执行后者。我一直在努力做到: $ myLayer.remove(myShape) 因为这是大多数帖子推荐的。但是,文件上说,这将从舞台上移除图层,而不是从图层上移除形状。当我在项目中尝试这一点时,它实际上会将层从舞台上移除 那么,我是否做错了什么,或者是否有其他方法可以从层中删除形状?有两个功能可能会有所帮助 childContainer.remove()从其父容器中删除childContai

我目前正在从事一个涉及KineticJS的项目

我必须不断地动态地创建和删除形状,但似乎不知道如何执行后者。我一直在努力做到:

 $ myLayer.remove(myShape)
因为这是大多数帖子推荐的。但是,文件上说,这将从舞台上移除图层,而不是从图层上移除形状。当我在项目中尝试这一点时,它实际上会将层从舞台上移除


那么,我是否做错了什么,或者是否有其他方法可以从层中删除形状?

有两个功能可能会有所帮助

  • childContainer.remove()
    从其父容器中删除childContainer
  • parentContainer.removeChildren()
    从此容器中删除所有子容器
编辑:这也适用于形状。只需重新绘制图层

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

在Kinetic 4.0和最新版本之间,remove(child)停止工作。removeChild(儿童)也不起作用


我使用child.remove()解决了这个问题

U可以使用动力学函数的原型

Kinetic.Node.prototype.remove.call(removed\u对象)


baselayer.draw()

我不知道是否有更好的方法,但在阅读了一些代码之后。我发现如果我做myShape.remove()这个形状会从图层上移除。thanx,我只是想知道这个!在调用remove后,发现您甚至不需要重新绘制该层,它立即消失。如何再次还原它???@MahdiAlkhatib如果您仍然有对子对象的引用,则只需将其添加到层/容器中即可。如果没有指向它的变量,它将被销毁(垃圾收集)??