Flex组件访问其他组件

时间:2008-12-18 17:00:52

标签: flex

我有2个组件例如(editor.mxml使用mx:windows),当我点击编辑按钮时,我想从其他组件的数据字段中获取当前值? (datagrid.mxml使用mx:window)

我知道如何通过parentDocument或Application.application方法访问主MXML的数据网格,但如果我想访问上面提到的其他方式,则会阻塞块。保持代码尽可能简单。

4 个答案:

答案 0 :(得分:1)

您可以执行dependency injection,即为组件A提供对组件B的引用,以便它们可以直接通信(更紧密耦合的示例),或者让两个组件进行通信通过常见的mediator使用事件(更松散耦合的例子)。

这两个选项都可以在您创建这些组件(本例中为AB)并将其添加到显示列表的任何地方实施。

答案 1 :(得分:0)

这可能比它应该更复杂,并且它有点模式热,但你可以使用一个中介类来监听按钮中的CLICK事件并且足够了解其他组件来查询其属性。它甚至可以使用按钮侦听的自定义事件传输该数据。

虽然这涉及三个类而不是两个类,但通常更容易有两个专注于看起来很好的组件和一个担心协调的组件。

干杯

答案 2 :(得分:0)

试试这个:

FlexGlobals.topLevelApplication

这指向你的根。从根目录你可以抓住你想要的每一个元素。

答案 3 :(得分:0)

您还可以像这样添加自定义组件的ID

<custom:Editor id="myCustomComponent">

  </Editor:AddressForm>

像这样访问你的datagrid值,

var data:ArrayCollection = myCustomComponent.DatagridID.dataProvider;