Flex 访问自定义组件的子属性
Posted
技术标签:
【中文标题】Flex 访问自定义组件的子属性【英文标题】:Flex accessing custom component's children properties 【发布时间】:2013-06-17 03:39:20 【问题描述】:有没有办法从 mxml 而不是从 actionscript 访问自定义组件的子属性。
例如,我有一个组件“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 />
<childB color="0xFFFFFF"/>
</components:A>
<components:A>
/*And here too*/
<childA />
<childB color="0x000000"/>
</components:A>
</s:HGroup>
【问题讨论】:
【参考方案1】:您可以在 ActionScript 中执行此操作;但不是在 MXML 中。在 ActionScript 中:
componentAInstance.childA.width = 20;
componentAInstance.childB.setStyle('color',0xFFFFFF);
这就是我们所说的可怕的封装中断;因为“父级”不需要知道其子级的实现细节。
ComponentA 应该知道如何调整自己子项的大小和位置;在此追逐 childA 和 childB。它不需要 ComponentA 的父级的帮助。
阅读这篇关于component's should communicate with each other 的博文可能会让您受益匪浅。
【讨论】:
是的,但我想知道 mxml 方式。问题是:我有特定的加载器组件,它有超过 4 个外观参数和一些包含该加载器的组件。该组件可以占据应用程序的整个屏幕,也可以是 32 x 32 像素。我正在考虑从 mxml 控制加载程序的外观,而无需从代码中进行太多自定义。我想我现在必须通过容器组件传递这些属性。 @Komlev 为什么不将这 4 个参数设置为父对象的属性。设置后,如果孩子存在,它可以将属性应用于孩子。 这是一项额外的工作,我知道它很少但它就在那里,我想知道有没有一种方法可以不用交替父类。我希望 mxml 能给我一些“语法糖”。 我不确定你的意思是我建议的答案是额外的工作还是@SunilD。评论是。从推测的角度来看,SunilD 的方法是正确的。以上是关于Flex 访问自定义组件的子属性的主要内容,如果未能解决你的问题,请参考以下文章