0

在 Flex 中,我想创建一些变量来保存整个应用程序中使用的 ui 组件字典。理想情况下,Application 组件中应该有一个函数会返回组件的 id:

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

然后我将使用以下行访问组件:

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

现在,唯一的问题是:我希望返回的组件是只读的。从应用程序的每个角落读取myComponent
的 一些属性非常方便,但我不希望我的开发人员滥用它并更改myComponent

是否可以返回myComponent的副本?或者是否有可能以某种方式使其只读?

4

1 回答 1

3

在您描述的情况下,无法检索只读组件。

您可以通过实现不带 set 方法的 get 方法来创建只读变量。像这样的东西:

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

这将允许您从组件中检索 UIComponent 实例 myValue;但你将无法设置它。

但是,这不会阻止人们更改返回的 UIComponent 的属性,除非这些属性也以只读方式实现。

我要补充一点,已经有一个方法getChildByName()按名称检索子组件。如果您有父级实例,则可以使用它来访问子级。

说了这么多,我不确定我是否完全理解您希望实现的目标;有了这个功能。

于 2012-09-23T02:38:35.190 回答