2010-07-29 4 views
1

어도비 플렉스 3을 사용하면 finalizer를 지정할 방법이 있습니까?어도비 플렉스 3의 파이어시

+0

왜 finalizer가 필요합니까? 어쩌면 이것을 실현하는 다른 접근법이있을 수 있습니다. – splash

+0

@splash : 기술적으로 필자는 필사자를 필요로하지 않습니다 - 나는 (아마도) 객체 수명을 확인하고 코드를 올바른 시점에서 직접 호출 할 수 있습니다. 나는 더 쉬운 삶을 원했을 뿐이다 ... –

+0

AVM의 객체는 GC에 의해 파괴되므로 객체가 언제 파괴되는지 알 수 없다. 이는 .NET이 관리되지 않는 리소스에 IDisposable을 사용하는 것과 정확히 같은 이유입니다. –

답변

5

ActionScript 3에서는 AVM/바이트 코드 수준에서도 finalizer/destructor의 개념이 없습니다.

0

ActionScript에서 소멸자/finalizer와 같은 것이 없더라도 더 이상 필요하지 않을 때 클래스의 모든 리소스를 해제하는 방법을 사용하는 것이 좋습니다.

가비지 수집은 더 이상 필요없는 개체를 선택하고 참조 카운팅을 사용하여 이러한 경우를 결정합니다. 따라서 제거되지 않은 이벤트 리스너, 순환 종속성 (서로를 참조하는 객체) 등이있는 한이를 인식하지 못할 수도 있지만 메모리 사용량은 계속 증가 할 것이고 GC는 이러한 리소스를 전혀 확보하지 않습니다.

  • delete가 사전
  • 을 모든 강력한 객체 키를 s의 모든 이벤트 리스너에게
  • 통화 중첩 된 객체에 대한 destroy() 또는 finalize()을 제거합니다

    따라서은 destroy() 또는 finalize 방법이 있어야합니다

  • 은 모든 객체 유형 변수를 null (괜찮습니다.

표시 객체의 경우 Event.REMOVED_FROM_STAGE이 전달 될 때이 메서드를 호출하는 것이 일반적으로 좋지 않습니다.

관련 문제