Flash Pro cc. (ActionScript3)를 사용하여 게임을 만들고 있습니다하지만 루프를 통해 MovieClip 변수가 동적으로 선언 된 aTile에 어떤 일이 발생하는지 궁금합니다. 그리고 각 aTile은 2 EventListener를 가져옵니다. 위한동적으로 선언 된 변수를 사용하지 않을 때 어떤 일이 발생합니까?
(VAR I :; I < pVector.length; 번호 = 0 난 ++) {
var aTile:ATile=new ATile();
aTile.x=pVector[i].x;
aTile.y=pVector[i].y;
aTile.gotoAndStop(Math.ceil(Math.random()*Color));
nVector.push(aTile);
Spr.addChild(aTile);
aTile.addEventListener(MouseEvent.CLICK,Clicked,false,0,true);
aTile.addEventListener(Event.COMPLETE, stop,false,0,true);
}
//는 현재 기능은 여기서 끝난다. 지금 aTile은 어떻게 될까요 ?? 쓰레기 수거 할 것인가? 그런데이 코드는 플레이어가 새로운 레벨의 게임을 시작할 때마다 실행됩니다. 그리고 다른 함수에서는 aTile 변수를 사용하지 않습니다. 나는 nVector 변수 만 사용합니다. 루프에서 동적 변수를 선언하면 여러 변수가 만들어 짐을 의미합니까? 예를 들어 코드 조각을 5 번 반복하면 5 개의 aTile 변수가 만들어 집니까? 또는 var aTile을 선언 할 때마다 : ATile = new ATile(); 다시 말하지만, 그것은 'old'aTile을 'new'aTile로 대체 할 수 있으며 따라서 루프 뒤에 오직 하나의 aTile 만 존재합니다 ????
nVector가 '범위를 벗어남'은 nVector = null을 의미합니까? 나는 nVector와 Spr을 무효화하여 각 레벨의 끝에서 (게임의) 다른 기능으로 그렇게합니다. 둘이 무효화 된 후 쓰레기 수거를할까요? – SpiderWeb
또한 Spr.removechild (aTile)에서 Spr을 무효화했습니다. – SpiderWeb
예, 아이디어는 더 이상 액세스 할 수 없을 때까지 개체가 가비지 수집되지 않는다는 것입니다. nVector를 null로 설정하면 nVector는 다른 방법이없는 한 가비지 수집을 할 수 있습니다. nVector 내의 모든 객체는 다른 방법으로 접근 할 수없는 한 가비지 수집 대상이됩니다. – Tmdean