2012-09-22 4 views
0

Flex에서는 응용 프로그램 전체에서 사용되는 UI 구성 요소 사전을 보유 할 수있는 변수를 만들려고합니다.Flex에서 읽기 전용 ui 구성 요소를 반환하십시오.

public function getComponent4Id(id:String):UIComponent {} 

가 그럼 난 다음 줄을 사용하여 구성 요소에 액세스 할 : 이상적으로 id 인 구성 요소를 반환 응용 프로그램 구성 요소의 기능이있을 것입니다 이제

var myComponent:UIComponent = FlexGlobals.topLevelApplication.getComponent4Id("someId"); 

을, 유일한 문제는 : 내가 원하는 컴퍼넌트는 읽어 들여 전용으로 돌려 주어집니다.
응용 프로그램의 모든 구석에서 myComponent의 일부 속성을 읽는 것이 매우 편리하지만 개발자가 악용하고 변경하는 것을 원하지 않습니다. myComponent.

myComponent 사본을 반환 할 수 있습니까? 아니면 어떻게 든 읽기 전용으로 만들 수 있습니까?

답변

3

설명하는 상황에서는 읽기 전용 구성 요소를 검색 할 수 없습니다.

set 메소드없이 get 메소드를 구현하여 읽기 전용 변수를 만들 수 있습니다. 이런 식으로 :

public var get myValue():UIComponent{ 
return UIComponent; 
} 

이렇게하면 구성 요소에서 UIComponent 인스턴스 myValue를 검색 할 수 있습니다. 그러나 당신은 그것을 설정할 수 없을 것입니다.

그러나이 속성이 읽기 전용으로 구현되지 않은 경우 사용자가 반환 된 UIComponent에서 속성을 변경하지 못합니다.

이미 자식 구성 요소를 이름으로 검색하는 방법이 getChildByName() 인 것을 추가하겠습니다. 부모에 대한 인스턴스가있는 경우이 인스턴스를 사용하여 자식에 액세스 할 수 있습니다.

모든 말로는, 나는 당신이 달성하기를 희망하는 것을 완전히 이해하고 있는지 확신 할 수 없다. 이 기능이 있습니다.