0

有没有办法从 mxml 而不是从动作脚本访问自定义组件的子属性。

例如,我有一个组件“A”

<s:Group>
   <mx:UIComponent id='childA'/>
   <mx:UIComponent id='childB'/>
</s:Group>

在应用程序的某个地方我想做这样的事情

<s:HGroup>
   <components:A>
      /*I want to access properties of this children objects*/
      <childA width="20"/>
      <childB color="0xFFFFFF"/>
   </components:A>

   <components:A>
      /*And here too*/
      <childA width="60"/>
      <childB color="0x000000"/>
   </components:A>
</s:HGroup>
4

1 回答 1

1

您可以在 ActionScript 中执行此操作;但不是在 MXML 中。在动作脚本中:

componentAInstance.childA.width = 20;
componentAInstance.childB.setStyle('color',0xFFFFFF);

这就是我们所说的可怕的封装中断;因为“父级”不需要知道其子级的实现细节。

ComponentA 应该知道如何调整自己的孩子的大小和位置;在此追逐 childA 和 childB。它不需要 ComponentA 的父级的帮助。

阅读这篇关于组件应该如何相互通信的博客文章,您可能会从中受益。

于 2013-06-20T10:22:20.960 回答