使用 KineticJS 从层中删除对象
Posted
技术标签:
【中文标题】使用 KineticJS 从层中删除对象【英文标题】:Removing objects from a layer using KineticJS 【发布时间】:2012-09-27 06:06:45 【问题描述】:我目前正在从事一个涉及 KineticJS 的项目。
我必须不断地动态创建和删除形状,但似乎无法弄清楚如何做后者。我一直在努力:
$ myLayer.remove(myShape)
因为这是大多数帖子似乎推荐的内容。但是,文档说这将从舞台上删除图层,而不是从图层中删除形状。当我在项目中尝试这个时,它实际上从舞台上删除了图层。
那么是我做错了什么还是有其他方法可以从图层中删除形状?
【问题讨论】:
不知道有没有更好的办法,但是看了一些动力学的js代码。我发现如果我执行 myShape.remove() ,形状就会从图层中移除。 【参考方案1】:有两个功能可能会有所帮助。
childContainer.remove()
将 childContainer 从其父级中移除。
parentContainer.removeChildren()
从此容器中删除所有子项。
编辑:这也适用于形状。只需重绘图层即可。
myShape.remove();
myLayer.draw();
【讨论】:
thanx,我只是想知道这个!发现你甚至不需要重绘图层,在调用 remove 之后它立即消失了。 如何重新恢复?? @MahdiAlkhatib 如果您仍然有对孩子的引用,那么只需将它们添加到图层/容器中 那么如果没有变量指向它,它就会被销毁(垃圾收集)??【参考方案2】:在 Kinetic 4.0 和最新版本之间的某个地方,remove(child) 停止工作。 removeChild(child) 也不起作用。
我通过使用 child.remove(); 解决了这个问题
【讨论】:
【参考方案3】:你可以使用动力学函数的原型
Kinetic.Node.prototype.remove.call(removed_object);
baselayer.draw();
【讨论】:
以上是关于使用 KineticJS 从层中删除对象的主要内容,如果未能解决你的问题,请参考以下文章
UG NX二次开发(C#)-外部模式-批量删除某些图层中的体对象和曲线对象
UG NX二次开发(C#)-外部模式-批量删除某些图层中的体对象和曲线对象