2014-01-22 1 views
-1

나는 라운드가있는 게임을 가지고있다. 매 라운드가 끝날 때 가장 쉬운 방법은 모든 코드를 다시로드하고 다음 라운드를 시작하는 것입니다. 실제로 무대 개체를 가지고 다음과 같이 다시 전화 : gameStage = 새로운 Kinetic.Stage ({...})KineticJS 파멸 단계

나는 무대가 재현 될 것이라고 생각했던 것을 이렇게함으로써

, 그리고 모든 레이어, 객체 스테이지 자체는 메모리에서 제거 (파괴)됩니다. 새로운 무대를 만든 후에도 모든 객체가있는 이전 스테이지가 메모리에 남아 있다는 느낌이 들었습니다. 그게 사실이야? 내가 먼저 새로운 층을 부르기 전에 먼저 각 층에 파괴자를 부른 다음 각 층을 제거한 다음 무대를 파괴해야합니까? 스테이지를 완전히 지우고 처음부터 새 레이어를 추가하는 가장 좋은 방법은 무엇입니까?

감사 엘리

답변

-1

단계는 = 새로운 Kinetic.Stage 이전 단계와 모든 개체를 역 참조 자바 스크립트를 야기한다.

가비지 수집기가 실행되면 역 참조 된 개체가 사용하는 모든 메모리가 해제됩니다.

가비지 수집 후에 오래된 단계가 사라지고 사용 된 메모리가 메모리 풀로 해제됩니다.

하단 : 단계 = 새로운 Kinetic.Stage는 이전 단계를 지우는 작업을 수행합니다.