Object too deep 에러와 해결방법에대한 문의?

by huguduk posted Dec 20, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

안녕하세요, MV 툴을 다루다  스크립트를 통해 생성한 정보들이 어떻게 유지되나 테스트하기위해

 

MV에서 기본 제공하는 save를 해보려했는데

 

Error: Object too deep {stack: (...), message: "Object too deep"}

 

와 같은 메시지가 뜨더군요,

 

구글링과 해외 MV포럼을 뒤져본뒤, 제가 짜넣은 코드들을 살펴본결과 다음과같은코드가 문제였습니다.

 

Sprite_Character.prototype.setCharacter = function(character) {
    this._character = character;
    character._sprite = this;
};

 

Sprite_Character 가 참조를 하게될 Game_Character 객체를 set하는 함수입니다.

기존 MV 코드의 대부분이  Sprite객체가 Game 객체를 알고, 그 역은 알지못하는 관계로 짜여져있긴한데

기능상의 편의를위해 진한색 부분을 추가하여 역참조도 가능하게 하였습니다.

 

MV에서 저장시 어떤방식을 하는지는 확실히 모르겠으나 저러한 참조로 인해 저장정보가 참조의 참조로 스택이 무한으로 쌓여서

에러가 나는것 같습니다..

 

일단 수정한다면 

var GlobalVar = GlobalVar || null;

Sprite_Character.prototype.setCharacter = function(character) {
    this._character = character;
    GlobalVar = this;
};

 

위와같은 방식으로 가능할것으로 보이긴 합니다만, 전역변수를 쓰지않고

혹시 가능한 방법이 있을까싶어서 질문글 올립니다.

 


Articles

8 9 10 11 12 13 14 15 16 17