在Flex中,如何在运行时获取无子画布组件的尺寸?

时间:2009-04-10 16:59:28

标签: flex layout canvas

我的一个组件如下所示:

<mx:Canvas id="grid" width="100%" height="100%"></mx:Canvas>

在creationComplete上,我加载了一些我希望根据画布的尺寸进行缩放和定位以创建自定义网格布局的spirte,但是当我访问'grid'的尺寸时,我得到0和0.有没有在不指定绝对值的情况下获取尺寸的方法?

4 个答案:

答案 0 :(得分:0)

我目前无法检查此信息,但您可以访问measuredHeight和measuredWidth吗?

答案 1 :(得分:0)

我的理解是,除非Canvas包含一个或多个DisplayObject子项,否则它将始终将其width和height属性报告为0,而不管您可能应用于它的百分比大小。

您总是可以向Canvas添加一个空的虚拟DisplayObject,但这不会很优雅。根据您计划实施自定义网格的方式,您可能需要重新考虑设计......

答案 2 :(得分:0)

是否可能已创建但尚未显示(例如可见)?由于最终的大小和形状是派生的,所以直到实际需要绘制它才会发生。宽度和高度被记录为实际使用的值 - 甚至有更改时的事件。

最糟糕的情况是,尝试在画布Resize事件中捕获它。

答案 3 :(得分:0)

您是否尝试将Canvas的宽度和高度绑定到其父级?如果它是100%,那么它将具有与其父级相同的大小,您可以根据Canvas的父容器绑定或调整Sprite(UIComponent)的大小。