这个问题与我之前在这里问过的一个问题有关。我目前正在使用 KineticJS 4.0.5,并且正在使用多个图层来显示一些具有不同属性的形状。由于我需要经常更改图层内容,因此我使用 removeChildren 来删除图层内容,但似乎 removeChildren 也会删除与儿童相关的事件。我想在不删除其事件的情况下删除子图层,因为我可能必须再次将它们添加到图层中。
我试图将 layer.childrens 属性设置为一个空数组,而不是使用 removeChildren 函数。起初它似乎有效,但在某些情况下,会发生一些奇怪的事情:/ 一些形状消失了,让它们恢复的唯一方法是设置它们的 Z 索引。我认为这种方法的主要问题与从图层中删除内容时必须重置的某些属性有关,但我不知道它们是哪些。
我还尝试在绘制它们之前再次在每个形状上设置事件,但它不起作用......它们在屏幕上保持静态......我尝试在绘制它们之前对所有形状使用 setDraggable(true) 但没有运气...每次我想用以前使用的形状重绘图层时,是否需要再次创建对象并将事件再次应用到它们?还是在我的应用程序上为每个屏幕存储图层是一种好方法?(我可以有很多不同的屏幕,这会导致很多层,一次只能显示一个......)
如果您知道此问题的解决方案,请告诉我。我真的需要解决这个问题,因为我的项目能够绘制和重绘非常重要:/
谢谢!