gpt4 book ai didi

apache-flex - 父类(super class)可以在哪个事件阶段引用其派生类中潜在的现有组件?

转载 作者:行者123 更新时间:2023-12-04 06:24:59 25 4
gpt4 key购买 nike

在 Flex 中,可以说我有一个父类(super class)……例如:

class SuperComponent extends DragStack {

private var _childReference:UIComponent;

public function SuperComponent() {
// ???
addEventListener(FlexEvent.CREATION_COMPLETE, onCreationComplete);
}

private function onCreationComplete(e:FlexEvent):void {
//The 'this[]' technique doesn't seem to work and causes run-time errors:
//trace("Component found: " + this["myButton"]);
}
}

然后我在我的应用程序中使用以下派生类(仅以 MXML 模型为例):
<!-- Component ChildComponent.mxml -->
<mx:SuperComponent>
<mx:Button id="myButton" label="Press Me!" />
</mx:SuperComponent>

如何验证 SuperComponent 类中“myButton”的存在并引用它?我需要使用 getChildByName( ... ) 吗?

最佳答案

我不确定 DragStack 是什么类型的组件。它是扩展 Container (Flex 3) 还是 Group (Flex4)?如果是这样,那么组件将通过它的 lifecycle process ,并且在执行 createChildren 方法后应该可以访问 myButton。

我相信 MXML 在幕后做了一些魔法来创建按钮作为组件的子项。

如果 DragStack 不是容器,那么您必须告诉我们 DragStack 的默认属性是什么。 DefaultProperty 将在 class metadata 中指定.

我相信 MXML 所做的基本上是,如果没有指定其他属性,则将 XML Children 分配给 SuperComponent 类的默认属性。如果要将其分配给不同的属性,则必须指定它,如下所示:

<mx:SuperComponent>
<mx:myProperty>
<mx:Button id="myButton" label="Press Me!" />
</mx:myProperty>
</mx:SuperComponent>

此语法通常仅用于属性没有简单值的情况,例如 DataGrid 的列数组。

关于apache-flex - 父类(super class)可以在哪个事件阶段引用其派生类中潜在的现有组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6155681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com