2008-04-30
Flex布局之关于组件的大小
组件的大小(size)就是指组件的高度和宽度。查看Flex帮助,可以看出关于Flex组件大小的属性有很多,以宽度为例,有以下有关宽度的属性:
- width
- maxWidth
- minWidth
- explicitWidth
- explicitMaxWidth
- explicitMinWidth
- measuredWidth
- measuredMinWidth
- percentWidth
- scaleX
- 以及组件的MXML标记中的width属性。
如此之多的有关宽度的属性难免让人糊涂,而且,帮助上说的也不是很透彻,因此通过查阅相关文档和源代码,基本搞清了这些属性的含义和相互作用。这些有关宽度的属性中,基本的属性包括:
- width
- explicitWidth
- measuredWidth
- percentWidth
- scaleX
明白这些属性之后,自然容易理解剩余的属性。
- width,组件的当前实际宽度,以像素为单位。为什么会有当前实际宽度的这样的说法呢?因为在Flex中,能够为组件设置相对宽度,即百分比的表示宽度,这时组件当前的实际宽度是根据父容器的宽度动态决定的,开发者无法知道实际宽度的,因此通过读取width属性可以知道其当前实际宽度。
- measuredWidth是组件的缺省宽度,以像素为单位。可以通过重载组件的measure方法来改变它的值,一般情况下,组件的measuredWidth都是0。
- explicitWidth是显式指定的宽度,以像素为单位。所谓显式指定宽度区别于动态的相对宽度,即区别于百分比宽度percentWidth。开发者设置该属性值时就已经知道到组件在运行时的宽度,故称为显式指定的宽度。该属性同百分比宽度互斥,一旦设置了explicitWidth,则percentWidth的值就会变为NaN,同理,一旦设置了percentWidth,explicitWidth值就会变为NaN。当用ActionsSript代码设置了组件的width属性值时,explicitWidth属性会立即被赋予同样的值,同时percentWidth会变为NaN。设置explicitWidth属性时,percentWidth会立即被设置为NaN,但是width属性则不会立即改变,要延迟组件布局的commit阶段才会变为与explicitWidth相同的值。
- percentWidth是指组件的百分比宽度,比如设置组件占用父容器的50%的宽度,那么就设置该属性值为50。该属性同显式指定的宽度(explicitWidth)互斥,一旦设置该属性值,则explicitWidth属性立即变为NaN。
- scaleX是当前组件宽度的缩放比例。一旦设置属性,考虑到性能,不会立即更新组件的width和explicitWidth属性,延迟到explicitWidth时会将width和explicitWidth属性值改变。
除了以上基本属性之外,值得注意的就是组件MXML标记中的width属性。这个属性在编译组件MXML标记时,根据标记的该属性值的格式编译成设置percentWidth或width属性的AS代码。如果组件MXML标记的width属性后面有百分号(%),则其被编译为设置percentWidth属性的AS代码,如果组件MXML标记的width后面不带百分号(%),则其被编译为设置width属性的AS代码。
发表评论
- 浏览: 26470 次
- 性别:

- 来自: 西安

- 详细资料
搜索本博客
链接
最新评论
-
cairongorm教程
谢谢了
-- by phbzht -
任务定时器quartz开发教程
翻的很詳細,不錯喔
-- by yongli -
Hessian3.1.6目前还不能作 ...
hessian完成了Java对象和ActionScript对象之间的序列化和反序 ...
-- by ltian -
Hessian3.1.6目前还不能作 ...
一直在想 hessian究竟做了什么事情? 应该只属于对POJO的包装,以便于网 ...
-- by cuiyi.crazy -
AOP基本概念
比较好的Java开源软件汇集介绍的国外网站 ... | JSF命令控件<h ...
-- by huyuhong001






评论排行榜