Flex布局之关于组件的大小

herlly 2009-05-15 03:03:57
加精
在网上看到的,贴到这里供大家分享啊

组件的大小(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代码。
...全文
1433 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
javaflex 2012-05-04
  • 打赏
  • 举报
回复
我记得有一种是直接跟middle,left……什么的,那是哪种呀?
gao1369xin 2009-12-10
  • 打赏
  • 举报
回复
不错
yanhaoss123 2009-05-25
  • 打赏
  • 举报
回复
flex。。不简单
wlwwp 2009-05-24
  • 打赏
  • 举报
回复
Edenzo 2009-05-21
  • 打赏
  • 举报
回复
今天看livedoc刚好看到"Implementing the measure() method "一节,说flex只会在explicitWidth 或 explicitHeight 为NaN,且显示调用了invalidateSize()之后,才会在下一个render事件到来时调用measure()方法.
刚开始看得不太明白,看到楼主这句才知道什么意思.
"当用ActionsSript代码设置了组件的 width属性值时,explicitWidth属性会立即被赋予同样的值,同时percentWidth会变为NaN。设置explicitWidth 属性时,percentWidth会立即被设置为NaN,但是width属性则不会立即改变,"
浴火涅磐 2009-05-18
  • 打赏
  • 举报
回复
很厉害,只是不知你是怎么学数据库的,学的这么厉害
lovezx1028 2009-05-18
  • 打赏
  • 举报
回复
学习来的拉/.///
wrui927 2009-05-18
  • 打赏
  • 举报
回复
怎么 弄的啊
wrui927 2009-05-18
  • 打赏
  • 举报
回复
bucuo
  • 打赏
  • 举报
回复
佩服能耐心研究说明文档的 人们 ! 向你们致敬了
lihe111 2009-05-18
  • 打赏
  • 举报
回复
不是我写的,忘记在哪里看到的,搬来和大家分享一下哦
chen249993213 2009-05-17
  • 打赏
  • 举报
回复
* width
* maxWidth
* minWidth
* explicitWidth
* explicitMaxWidth
* explicitMinWidth
* measuredWidth
* measuredMinWidth
* percentWidth
* scaleX
* 以及组件的MXML标记中的width属性。

wangjunhua107 2009-05-17
  • 打赏
  • 举报
回复
学习中
cyyhyq 2009-05-17
  • 打赏
  • 举报
回复
谢谢分享
timi001 2009-05-17
  • 打赏
  • 举报
回复
好多时候我已经无法胜任现在的这份工作了。。。。
redhat2 2009-05-17
  • 打赏
  • 举报
回复
关注


.



人力资源

kk324 2009-05-17
  • 打赏
  • 举报
回复
看下 学习下
kk324 2009-05-17
  • 打赏
  • 举报
回复
看下 学习下
iwifksfksjfkads 2009-05-17
  • 打赏
  • 举报
回复
学习学习
kk324 2009-05-17
  • 打赏
  • 举报
回复
看下 学习下
加载更多回复(17)

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧