2012-10-06 9 views
14

현재 KineticJS와 관련된 프로젝트를 진행 중입니다.KineticJS를 사용하여 레이어에서 객체 제거

동적으로 모양을 만들고 삭제해야하지만 후자를 수행하는 방법을 알아낼 수 없습니다. 나는 다음과 같이하려고 노력했다 :

$ myLayer.remove(myShape) 

이것은 대부분의 게시물이 추천하는 것으로 보이기 때문이다. 그러나 문서에서는 레이어의 모양이 아니라 스테이지에서 레이어를 제거한다고 말합니다. 내가 이것을 프로젝트에서 시도 할 때 실제로 무대에서 레이어를 제거합니다.

내가 뭔가 잘못하고있는 중이거나 레이어에서 모양을 제거하는 다른 방법이 있습니까?

+4

의 프로토 타입을 사용할 수 있지만 운동 JS 코드의 일부를 읽은 후. myShape.remove()를 수행하면 모양이 레이어에서 제거됩니다. 덕분에 – user1724623

+0

! 유용한 정보 – tetris11

답변

16

유용한 두 가지 기능이 있습니다.

  • childContainer.remove()은 그 부모로부터 childContainer를 제거합니다.
  • parentContainer.removeChildren()은이 컨테이너에서 모든 하위 항목을 제거합니다.

편집 : 도형에도 적용 할 수 있습니다. 레이어를 다시 그리기 만하면됩니다.

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

고맙습니다, 저는 이것을 알고 싶었습니다! 레이어를 다시 그릴 필요가 없다는 것을 알았습니다. 즉시 레이어를 제거한 후 호출하십시오. – luschn

+0

다시 복원하는 방법 ?? –

+0

@MahdiAlkhatib 여전히 자식에 대한 참조가있는 경우 레이어/컨테이너에 추가하기 만하면됩니다. – BenMQ

2

Kinetic 4.0과 최신 버전 사이의 어느 곳에서나 작업을 중지했습니다. removeChild (자식)도 작동하지 않습니다.

child.remove();를 사용하여이 문제를 해결했습니다.

0

U이 더 나은 방법이 있는지 모르겠어요 운동 기능

Kinetic.Node.prototype.remove.call(removed_object);

baselayer.draw();

관련 문제