1

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

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

谢谢


编辑:

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

4

2 回答 2

1

如果您从 UIComponent 继承,而不是从其子类之一,您可能需要确保您正在实现 measure() 方法等。在此处查看 Flex 文档以获取有关实现您自己的 UIComponents 的更多信息——这里有大量信息可供阅读,但如果您直接从 UIComponent 派生,您可能应该知道这些内容:

http://www.adobe.com/livedocs/flex/3/html/help.html?content=ascomponents_advanced_3.html

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

于 2009-07-15T18:58:28.240 回答
0

也许这行得通?

component.getExplicitOrMeasuredWidth() 
component.getExplicitOrMeasuredHeight()
于 2009-07-15T13:59:02.893 回答