2015-11-09 25 views
2

Paper.js使用addChild(item)將項目添加到Group的方式很明確。然而,似乎沒有一種清晰的方法可以從組中刪除項目,而不從視圖中刪除該項目本身。從Paper.js Group中刪除項目

組具有children屬性,但根據文檔,它不應該被突變:

兒童陣列不應該使用數組函數直接修改。要從子列表中刪除單個項目,請使用item.remove()從子項列表中刪除所有項目,請使用item.removeChildren()。要將項目添加到子項列表中,請使用item.addChild(item)或item.insertChild(index,item)。

因此,每個項目都有一個remove()方法,但這不僅會將其從組中移除,還會從顯示中移除。

如何從組中分離項目,並將其與組分離並且不將其從顯示中刪除?有沒有比這更乾淨的方法呢?

item.remove(); 
paper.project.activeLayer.addChild(item); 

回答

3

你的方法

item.remove(); 
paper.project.activeLayer.addChild(item); 

是它應該怎麼做。除非您調用paper.view.update(),否則不會在兩次調用之間重新渲染畫布,因此在進行額外的函數調用時幾乎沒有成本。