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

Actionscript 3 如何从父方法访问子属性/组件,actionscript-3,apache-flex,inheritance,parent-child,Actionscript 3,Apache Flex,Inheritance,Parent Child,我正在用Actionscript(Flex Mobile)开发一个应用程序,但在父子关系方面遇到了问题。我有一个继承自ClassA的ClassB,并且ClassA的方法之一需要访问ClassB的组件。该方法无法访问设置为受保护或私有的组件/属性/变量。我不想将其设置为public,即使这样可以解决问题 以下是父代码: public class BaseView extends View { ... protected function configureComponent

我正在用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,并且没有默认值

我希望你能在这个问题上帮助我

提前感谢,


Sebastián

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

这篇博客文章有帮助吗?也许不是;但听起来你说的是面向对象的层次结构,而不是显示层次结构。类不能访问在其子类中定义的元素;他们根本不了解自己的孩子。我要补充一点,基于代码审查,我对您尝试执行的操作感到困惑。您应该能够访问从a继承的类的受保护成员,只要该受保护成员在类a中声明(类a不必实现该成员,或者类B可以提供不同的实现)。看,艾米,请将其作为解决方案发布,以便我可以将其标记为正确。@塞巴斯蒂安,你是在跟我自己说话还是跟艾米说话?@rebog711对艾米说,因为我同意她的解决方案。我在父对象上定义了变量,但在需要它的子对象中实例化了该变量。她没有回答,所以,如果你愿意,你可以把它写下来作为解决方案,我会把它标记为正确答案。