2011-12-23 2 views
0

"새로 고침"저는 완전히 삭제 한 다음 응용 프로그램에서 다시 소개합니다 (응용 프로그램 자체를 닫지 않아도됩니다). 내가 생각하는 것 이외에는 그 질문 자체가 자명하다.구성 요소를 "새로 고치는"신뢰할 수있는 방법이 있습니까?

예 : 저는 myComponent이라는 구성 요소가 있다고합니다. 그 구성 요소를 MXMl 표준 방법으로 <components:myComponent id="myID" />을 사용하여 응용 프로그램에 추가합니다. 사용자가 버튼을 클릭하면 (버튼이 다른 상태 일 수 있음), ID가 myID 인 구성 요소는 가비지 수집이어야하며 해당 인스턴스가 애플리케이션에 추가되어야합니다.

어떻게해야합니까? 최적의 성능을 발휘하는 솔루션이 여러 개 있다면?

잘못된 용어가 사용 된 경우 Flash 및 Flex에 익숙해서 실례합니다.

답변

0

이전 구성 요소에서 모든 이벤트 리스너를 제거합니다. 어떤 요소 든 removeEventListener 메서드를 사용하고 있습니다.

myButton.removeEventListener(someEvent, someEventHandlerMethod); 

그런 다음이 구성 요소를 참조하는 모든 변수는 null로 설정해야합니다. 그런 다음 당신이해야 할 모든 null로이 값을 설정

<s:Button id="myButton" /> 

을 : 같이, MXML 파일에 만든 경우 구성 요소에 대한 참조가없는되면

myButton = null; 

, 안전하게 될 수 있습니다 가비지 수집 대상.

다시 작성하려면 다시 작성하십시오. ActionScript로 다시 만들어야하지만 코드는 그리 어렵지 않습니다. 개념적으로는 다음과 같습니다.

myButton = new myButton(); 
myButton.properties = propertyValues; 
myButton.addEventListener(someEvent, someEventHandlerMethod); 
parentContainer.addChildAt(myButton, whateverPositionYouWantToADdTheComponentAt); 

이 작업을 수행하는 것이 도움이되는지 잘 모르겠습니다. 기존의 버튼 인스턴스를 파괴하는 것과 반대로 똑같은 방식으로 바꾸는 것이 훨씬 더 효율적이라고 생각합니다.

관련 문제