AS를 통해 또는 Flash에서 키 프레임을 지워서 DisplayObject 객체를 삭제해야합니까? 아니면 그게 맞습니까?AS3 및 Flash에서 '삭제'가되어 단순히 프레임을 비우면됩니까?
0
A
답변
3
"제거해야"하는지 여부는 원하는 작업에 따라 다릅니다. 가비지 컬렉터의 표시 목록에서 이들을 제거하고 (메모리를 확보하려면) removeChild()
을 사용하여이를 제거해야합니다. Flash Pro에서 키 프레임을 지우면 객체가 스테이지에서 제거되지만, 객체가 메모리에서 제거되는지 여부는 확실하지 않습니다. 예를 들어 반복되는 MovieClip과 같이 다시 나타날 때까지 유지 될 수 있기 때문입니다.)
delete
키워드는 ActionScript에서 거의 사용되지 않으며 특히 객체 메모리를 할당 해제하는 데 사용되는 C++와 같은 방식으로 사용되지 않습니다. 대신 delete
은 동적 객체에서 속성을 제거하는 데에만 사용할 수 있습니다.
var obj : Object = {};
obj.name = 'foo'; // Creating the name property on dynamic Object
delete obj.name; // Removing the name property
trace(obj.name); // "undefined"
질문을 명확히하십시오. 약간의 맥락을 제시한다면, 당신이 정말로 묻고있는 것을 결론 짓고 더 적절한 답을내는 것이 더 쉬울 수도 있습니다.
개체를 스테이지에서 제거하면 개체에 대한 참조가없는 경우 GC를 사용하는 경우에만 해제됩니다. – shanethehat
@shanethehat, 맞습니다, 그리고 유효한 포인트. 내가 말하고자하는 것은 그것이 수집되기 위해서는 무대에서 대상을 제거해야한다는 것입니다. 종종 더 많은 것들이 필요할 것이지만, 질문은 메모리 관리에 관한 것이 아니기 때문에 그것에 대해 자세히 설명하고 싶지는 않습니다. – richardolsson