学习笔记 Flex Panel控件内部容器大小计算方法

开发 后端
Flex Panel控件内部容器大小计算方法你是否了解,这里和大家分享一下,Flex Panel控件是一个很特殊的容器控件。这个控件看起来就像是一个窗口,因为它有标题栏还有边框。

本文和大家重点讨论一下Flex Panel控件内部容器大小计算方法,Flex Panel控件是一个很特殊的容器控件,并且Flex Panel控件的width属性和height属性都是包括边框的。

Flex Panel控件内部容器大小计算方法

Flex Panel控件是一个很特殊的容器控件。这个控件看起来就像是一个窗口,因为它有标题栏还有边框。而实际的使用面积就是内部白色的部分。而Flex Panel控件的width属性和

height属性都是包括边框的。有的时候我们需要准确的知道内部容器的大小。在没有什么好办法的情况下,只能一点一点试,试出边框的大小,非常的麻烦,而且当Panel控件的

style发生改变后,有可能边框的宽度还会发生改变。有什么办法能够准确的知道边框的大小呢。
幸好一个偶然的机会发现了Flex Panel控件的一个属性viewMetrics,这个属性是一个EdgeMetrics对象,这个对象中有四个属性left、right、top、bottom,这个四个属性保存了上下左

右边框的值。根据这四个值就很容易得到Panel容器内部有效部分的大小了。

这有一个小例子:
 

  1. viewplaincopytoclipboardprint?  
  2. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  3. <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml" 
  4. layout="absolute"> 
  5. <mx:Script> 
  6. <!--[CDATA[  
  7. importmx.events.FlexEvent;  
  8. importmx.controls.Image;  
  9. privatevarimg:Image;  
  10. privatefunctiononClick():void  
  11. {  
  12. img=newImage();  
  13. img.source="Image.PNG";  
  14. panel.addChild(img);  
  15. }  
  16. privatefunctiononClick2():void  
  17. {  
  18. panel.width=img.width+panel.viewMetrics.left+panel.  
  19. viewMetrics.right;  
  20. panel.height=img.height+panel.viewMetrics.top+panel.  
  21. viewMetrics.bottom;  
  22. }  
  23. ]]--> 
  24. </mx:Script> 
  25. <mx:Panelidmx:Panelid="panel"x="133"y="98"width="398"height="360" 
  26. layout="absolute"> 
  27. </mx:Panel> 
  28. <mx:Buttonxmx:Buttonx="133"y="52"label="ShowPicture" 
  29. click="onClick()"/> 
  30. <mx:Buttonxmx:Buttonx="362"y="52"label="ResizePanel" 
  31. click="onClick2()"/> 
  32. </mx:Application> 
  33. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  34. <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml" 
  35. layout="absolute"> 
  36.  <mx:Script> 
  37.   <!--[CDATA[  
  38.    importmx.events.FlexEvent;  
  39.    importmx.controls.Image;  
  40.    privatevarimg:Image;  
  41.    privatefunctiononClick():void  
  42.    {  
  43.     img=newImage();  
  44.     img.source="Image.PNG";  
  45.     panel.addChild(img);  
  46.    }  
  47.    privatefunctiononClick2():void  
  48.    {  
  49.     panel.width=img.width+panel.viewMetrics.left+panel.  
  50. viewMetrics.right;  
  51.     panel.height=img.height+panel.viewMetrics.top+panel.  
  52. viewMetrics.bottom;  
  53.    }  
  54.   ]]--> 
  55.  </mx:Script> 
  56.  <mx:Panelidmx:Panelid="panel"x="133"y="98"width="398"height="360" 
  57. layout="absolute"> 
  58.  </mx:Panel> 
  59.  <mx:Buttonxmx:Buttonx="133"y="52"label="ShowPicture" 
  60. click="onClick()"/> 
  61.  <mx:Buttonxmx:Buttonx="362"y="52"label="ResizePanel" 
  62. click="onClick2()"/> 
  63. </mx:Application> 

在这个例子中,按下ShowPicture按钮,向Flex Panel控件中添加了一个图片,如果不改变Panel大小的话,就出现滚动条,图片显示不完整。

接下来按下ResizePanel这个按钮调整Panel的大小,在例子中使用viewMetrics属性动态调整了Flex Panel控件的大小。
这样整个图片就显示完整了。

【编辑推荐】

  1. 技术分享 用FlexBuilder创建Flex项目
  2. 开源Flex组件FlexReport使用指南
  3. 解析Flex事件执行流程
  4. FlexBuilder3.0与Eclipse3.4的完美结合
  5. 学习笔记 FlexBuilder2.0中如何使用基于Lists的控件 


 

责任编辑:佚名 来源: csdn.net
相关推荐

2010-08-09 10:34:05

Flex背景

2010-08-11 15:35:47

Flex DataGr

2009-07-27 13:52:36

Panel控件ASP.NET

2018-01-18 21:54:10

云计算公共云云服务

2010-07-27 10:39:25

Flex组件

2010-07-29 13:18:45

Flex右键菜单

2010-07-29 15:36:23

Flex安全沙箱

2010-08-10 16:41:54

FlexJSP

2010-08-04 09:26:27

Flex数据

2009-09-27 10:48:54

UPS电池容量

2010-07-30 09:56:02

Flex控件

2010-07-27 15:49:28

Flex

2010-08-12 11:05:33

Flex数据绑定

2010-08-09 15:19:29

Flex滚动条

2018-08-15 09:13:27

布线系统线缆用量

2018-11-06 10:08:34

无线AP网络带宽无线网络

2010-08-12 09:25:35

Flex控件

2010-07-29 14:13:12

Flex控件拖动

2010-08-06 11:04:06

Flex模块化

2010-07-30 13:52:17

Flex组件
点赞
收藏

51CTO技术栈公众号