【问题标题】:Return read-only ui component in Flex在 Flex 中返回只读 ui 组件
【发布时间】:2012-09-22 20:59:26
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: actionscript-3 apache-flex flex-spark


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-08-19
      • 2010-11-23
      • 2017-06-27
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多