如何从父方法访问子属性/组件

时间:2013-12-30 19:45:36

标签: actionscript-3 flex inheritance parent-child

我正在使用Actionscript(Flex Mobile)开发一个应用程序,并且遇到父子关系问题。我有一个继承自ClassA的 ClassB ,其中一个 ClassA 方法需要访问 ClassB 的组件。该方法无法访问设置为受保护私有的组件/属性/变量。我不想将其设置为 public ,即使它可以解决问题。

这是父代码:

public class BaseView extends View
{
    ...    
    protected function configureComponents(componentName:String):void
    {
        ...
        var service:HTTPService = this[componentControler.Id] as  HTTPService;                                  
        ...
    }
    ...
}

这是儿童代码:

public class Contacts extends BaseView
{
    ... 
    protected var callListService:HTTPService;

    override protected function createChildren():void
    {
        ...
        super.createChildren();
        ...
        callListService = new HTTPService();
        configureComponents("callListService");
    }
    ...
}

以前只是我所拥有的一个样本,但却是我需要的重要部分。此外,当我运行代码时,我收到以下错误:

  

错误#1069:在views.home.Contacts上找不到属性callListService,并且没有默认值。

我希望你能帮我解决这个问题。

提前致谢,

圣塞瓦斯蒂安

1 个答案:

答案 0 :(得分:1)

从父级访问子变量不是一个好习惯,但是,在需要这样做的情况下,最好的选择可能是在父类中定义变量,然后在子级上创建一个实例。通过这种方式实现,父级可以轻松访问子级的变量实例。