수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

인스턴스 삭제 처리하는 법?

볼수록매력

2023.04.01

PV3D를 이용하여 간단한 게임을 구현하고 있는데 문제가 있어서 질문 올려요

일단 기본 형태가 간단하게 보면 이렇습니다.
A클래스(Document Class) extends Sprite
B클래스(GamePlay Class) extends BasicView

A에는 메뉴가 깔려있고 Start를 누르면
gamePlay = new B(this);
addChild(gamePlay);
이런식으로 실제 플레이 부분을 불러옵니다.

B에는 메인으로 가는 버튼이 있고 그걸 누르면
다시 A클래스의 init()메소드를 호출합니다.(init()에선 메뉴화면 깔고 이벤트리스너 등록만 함)
B의 생성자 인자가 A클래스 주소니까 저 값을 넣은 변수.init() 으로 해서 A의 인스턴스의 init()을 호출하죠

여기까지 해보고 테스트를 하니 B에서 메인 누르면 다시 돌아가는 것까지 잘 됩니다.
그리고 Start를 누르면 다시 시작되는 것도 되는데, 문제는
이전의 B 인스턴스가 그대로 남아있다는 것입니다.
전 gamePlay = new B(this); 이 부분에서 기존의 것을 지우고 새로 만든다라고 생각을 했는데 그게 아니었나 봅니다.

그래서 질문은

1. 저런 경우에도 인스턴스 삭제를 꼭 해줘야 되는 게 맞나요?
한 멤버번수에 새로 생성하여 넣는 건데도 어째 예전 께 남아있는지..

2. 삭제해야된다면 어떤 기준으로 해야되는지요?
DisplayObject류만 하면 되는 걸까요?(저같은 경우 DisplayObject3D류도 있겠군요.)
어떤 기준으로 하는 건지..;

3. 자식 인스턴스들을 쉽게 삭제하는 방법이 있나요?
일일히 부모.removeChild(자식) 한 후 자식 = null; 이런식으로만 해야되나요?
중복 for돌려가면서 자식들 찾아서 지우게 할순 있겠지만 이것도 좀 아닌것 같아서..
그냥 최상위 객체만 null 줘버려도 자식들은 남나요ㅡㅡ?쉽게 요약하면
gamePlay= new B(); 를 반복하면 B클래스의 3D Object가계속 늘어간다는 거죠. 덮어씌워지는 게 아니라..

쿡북 책 하나 있는데 전혀 언급이 없네요
답변 부탁드립니다~

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 미즈

    1. 당근겹쳐지면 안되죠...겹쳐지게 된다면..똑같은 객체를 여러개 만들고 싶을때...쓸수가 없겠죠;;;

    2. 디스플레이오브젝트도 지우셔야하구...타이머 같은것도 지우세요...화면상에 addChild 안되어있어도....어디선가 참조하고 있으면 안지워질꺼에요..(그리고 DisplayObject3D 도 아마 DisplayObject를 상속받아서 만든걸껍니다...)

    3.제가 알기론 자식값을 어디선가 참조하고 있으면 GC가 안날린다는걸로 알고 있습니다..(

  • 아지랑이

    1. 삭제가 안됩니다. 고로 변수에 다른 값을 대입하기전에 충분한 처리(삭제등)을 해줘야 합니다.
    변수에 새로운 값을 넣는다고 해서 전 값 자체가 없어지지 않습니다(저 경우 레퍼런스 참조임, 스트링, 인트 뭐 이런거만 값 참조입니다)

    2. 화면상 보이는거라면 removeChild 해주시면 되고 기타 일반 클래스나 어레이 같은 것들은 기존 하시던대로 변수에 다른값 넣고 사용하시다보면 gc가 알아서 지워줍니다
    단, 디스플레이 오브젝트가 스테이지에 올라가

  • 한국드립

    아 추가로, 플래시엔 플렉스의 Panel 같은 UI클래스는 없나요? Dialog 하나 띄울려는데 (자바스크립트로 따지면 Confirm이나 Alert같은 거요) 일일히 구현해야되는지..

번호 제 목 글쓴이 날짜
2701748 아이피 변경 부분이요... 날애 2025-07-17
2701665 자바스크립트 // 왜 if 두개를 쓰면 오류가 나죠? (2) 글리슨 2025-07-16
2701636 모바일웹 게시판 만들기 조언좀 부탁드려요 ㅜㅜ (2) 정훈 2025-07-16
2701610 [질문] AS3 액션으로 스테이지 사이즈를 조절할 수 있는 방법이 있을까요? (1) 앵겨쪼 2025-07-15
2701556 input text에 한글을 default 하려면.. (3) 히나 2025-07-15
2701528 apmsetup 접속이.... (5) 곰돌이 2025-07-15
2701506 암호를 *로 (6) 도도한 2025-07-14
2701475 배열최대값 찾기인데; 소스좀 해석해주세요; Orange 2025-07-14
2701397 세로 100% 푸터부분이 바닥에 안붙어요(세로 100% 되는 소스를 썼거든요) 꽃겨울 2025-07-13
2701369 [긴급]로드해온 swf가 갑자기 사라지는 현상..(익스10) (2) 곰돌이 2025-07-13
2701340 [c++]학교 과제 질문이요...... (3) 기쁨해 2025-07-13
2701311 구글 뉴스검색최적화 작업은 누구의 영역인가요? 많은 조언 부탁드려요! 리나 2025-07-13
2701285 아이폰이나 안드로이드 폰 인터넷으로 볼때 배꽃 2025-07-12
2701230 테마 설정하면 밑에 뜨는 글 삭제 (1) 창의적 2025-07-12
2701177 css적용이 안되요~ (6) 다니엘 2025-07-11
2701151 사이트작업시 inputbox 가 readonly 형태표시 어떻게 하시나요? (1) 찬내 2025-07-11
2701123 간단한 select 질문입니다 (3) 천사의눈물 2025-07-11
2701061 비베질문.. 똘끼 2025-07-10
2701034 메일폼 내 script 삽입가능한 방법 없을까요.. (2) 마음새 2025-07-10
2701008 분명히 버튼을 만들었는데 액션이 안걸립니다. (3) 재찬 2025-07-10
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com