Apache flex 获取动态创建的自定义uicomponent的宽度

Apache flex 获取动态创建的自定义uicomponent的宽度,apache-flex,size,uicomponents,Apache Flex,Size,Uicomponents,我有一些来自UIComponent的自定义组件。我重载了updateDisplayList,因此它们具有自定义外观。我已经创建了一个布局器来布局这些自定义组件,但要正确放置它们,我必须知道自定义组件的宽度、高度。它们是动态创建的。在创建了所有这些元素之后(creationCompleted事件针对每个元素激发),我尝试对它们进行布局,但width/height属性仍然为0。 我还尝试在布局过程之前将它们添加到画布中 所以我的问题是,如何创建动态放置的自定义UIComponent,并了解其宽度和高

我有一些来自UIComponent的自定义组件。我重载了updateDisplayList,因此它们具有自定义外观。我已经创建了一个布局器来布局这些自定义组件,但要正确放置它们,我必须知道自定义组件的宽度、高度。它们是动态创建的。在创建了所有这些元素之后(creationCompleted事件针对每个元素激发),我尝试对它们进行布局,但width/height属性仍然为0。 我还尝试在布局过程之前将它们添加到画布中

所以我的问题是,如何创建动态放置的自定义UIComponent,并了解其宽度和高度

谢谢


编辑:


通过使用mx_内部名称空间,我可以设置宽度和高度(使用内部$width和$height字段),看起来它正在工作。但不是很干净/很好的解决方案。

也许这样行吗

component.getExplicitOrMeasuredWidth() 
component.getExplicitOrMeasuredHeight()
也许这样行吗

component.getExplicitOrMeasuredWidth() 
component.getExplicitOrMeasuredHeight()

如果您是从UIComponent继承的,而不是从它的一个子类继承的,那么您可能需要确保实现了measure()方法,以及其他方法。查看此处的Flex文档,了解有关实现您自己的UIComponent的更多信息——这里有大量信息可供阅读,但如果您直接从UIComponent派生,则可能需要了解这些信息:


希望有帮助!您也可以尝试发布一些代码,这样我们就有了更具体的内容。但有可能的是,为了检索这些值,您没有实现您应该实现的东西。(你的直觉是正确的——你不应该为了得到你所需要的东西而去挖掘mx_internal。)

如果你是从UIComponent继承的,而不是从它的一个子类继承的,你可能需要确保你实现了measure()方法,以及其他方法。查看此处的Flex文档,了解有关实现您自己的UIComponent的更多信息——这里有大量信息可供阅读,但如果您直接从UIComponent派生,则可能需要了解这些信息:


希望有帮助!您也可以尝试发布一些代码,这样我们就有了更具体的内容。但有可能的是,为了检索这些值,您没有实现您应该实现的东西。(你的直觉是正确的——你不应该为了得到你需要的东西而去挖掘mx_internal。)

这将返回显式设置或测量的宽度,但两者都是零。只有$width/$height字段包含在创建和绘制之后有用的内容。我是否可以使用这些字段,或者强制组件将其值写入宽度/高度/测量宽度。。字段?通过使用mx_内部名称空间,我可以设置宽度和高度,看起来它正在工作。但不是很干净/好的解决方案。它返回显式设置或测量的宽度,但两者都为零。只有$width/$height字段包含在创建和绘制之后有用的内容。我是否可以使用这些字段,或者强制组件将其值写入宽度/高度/测量宽度。。字段?通过使用mx_内部名称空间,我可以设置宽度和高度,看起来它正在工作。但不是很干净/很好的解决方案。在添加自定义组件的地方也可能会有所不同。它们是添加到createChildren方法、updateDisplayList方法还是MXML中?但我怀疑问题在于在子项中没有“度量”步骤。在添加自定义组件的地方也可能会有所不同。它们是添加到createChildren方法、updateDisplayList方法还是MXML中?但我怀疑问题在于孩子们没有“措施”步骤。