在Flex中,Panel组件是继承于UIComponent的,UIComponent中定义的组件尺寸信息width和height是对整个控件的宽和高而言,但Panel组件却是带有标题栏和边框,其实际能够装载内容的大小是小于width * height的。
于是,在使用Panel的时候,直接定义width和height没有实际意义,需要定义的应该是Panel的内部容器的大小。这篇文章(http://blog.csdn.net/To9m/archive/2009/10/28/4735966.aspx
)介绍了针对Flex 3中的mx:Panel的一种曲线救国的方式(通过viewMetrics.left/right/top/bottom获得左右上下的边框大小,再结合 width和height即可得到内部的实际大小),但在Flex 4的Spark组件中可以简单地通过contentGroup
属性的width和height即可获取。
示例:
<?xml version="1.0" encoding="utf-8"?>
<!-- -->
<s:Application name="Spark_Panel_contentGroup_test"
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<s:controlBarContent>
<s:CheckBox id="chckBx" label="Spark Panel controlBarVisible" />
</s:controlBarContent>
<fx:Script>
<![CDATA[
protected function lbl1_enterFrameHandler(evt:Event):void {
lbl1.text = pnl.width + "x" + pnl.height;
}
protected function lbl2_enterFrameHandler(evt:Event):void {
lbl2.text = pnl.contentGroup.width + "x" + pnl.contentGroup.height;
}
]]>
</fx:Script>
<s:Panel id="pnl"
title="Spark Panel title"
controlBarVisible="{chckBx.selected}"
width="300" height="200"
horizontalCenter="0" verticalCenter="0">
<s:controlBarContent>
<s:Button label="Spark Panel control bar contents" />
</s:controlBarContent>
<mx:Form>
<mx:FormItem label="Panel width/height:">
<s:Label id="lbl1" enterFrame="lbl1_enterFrameHandler(event);" />
</mx:FormItem>
<mx:FormItem label="Panel contentGroup width/height:">
<s:Label id="lbl2" enterFrame="lbl2_enterFrameHandler(event);" />
</mx:FormItem>
</mx:Form>
</s:Panel>
</s:Application>
示例效果:
示例代码来自于Flex Examples,原文请见:Determining the inner content dimensions in a Spark Panel container in Flex 4
- 大小: 4.8 KB
分享到:
相关推荐
本篇文章将详细介绍如何利用Flex4中的Spark Skin进行控件样式的自定义。 #### 二、Spark Skin与Skin类的关系 在Flex4中,`spark.skins` 包含了一个核心类 `SparkSkin`。`SparkSkin` 是一个继承自 `Group` 类型的...
在Flex开发中,"Flex可以拖拽的panel"是一个重要的功能点,它允许用户通过鼠标操作将面板(Panel)在界面上自由移动,提升用户体验,尤其是对于需要自定义布局的应用程序来说,这种交互方式非常实用。下面我们将深入...
在Flex4中,ActionScript3(AS3)是主要的编程语言,与Flex SDK紧密集成。AS3是ECMAScript的一个子集,拥有更强大的面向对象特性,如类、接口、包和命名空间,这使得它在构建复杂应用程序时更为高效。Flex4中文API...
在Flex程序中,获取HTML容器传递的URL参数值,通常涉及到三个关键步骤:从HTML中获取URL参数、使用JavaScript进行中间处理、以及在ActionScript中接收这些参数。这一过程不仅展示了Flex与HTML之间的交互机制,也体现...
flex4舞台尺寸随浏览器窗口大小改变.rar
本篇将围绕“Flex4 Spark Intranet Sample App”这一示例应用展开,探讨其在企业内网应用中的实践与技术要点。 首先,Spark组件集是Flex4的核心特性之一,它提供了一套完全重写且优化的UI组件,相比以前的 Halo ...
在前端开发中,Flex布局(Flexible Box)是一种强大的CSS布局模型,它允许开发者轻松地创建弹性容器和子元素,以适应各种屏幕尺寸和设备。在标题"flex实现的删除子容器"中,我们关注的核心是使用Flex布局来管理并...
首先,Flex4 API引入了全新的Spark组件架构,相较于Flex3的 Halo 组件,Spark组件更加灵活且性能更优。Spark组件包括一系列基础组件,如Button、Label、Container等,以及更复杂的组件如ListView、Accordion等。这些...
在《Flex4中文快速入门》这本书中,你将学习到以下关键知识点: 1. **Flex SDK与Flash Builder**:Flex SDK是免费的开发工具包,包含编译器和库,用于创建Flex应用程序。而Flash Builder是一款集成开发环境(IDE)...
- **Spark组件**:Flex4引入的新一代组件集,提供了更高的性能和更多的自定义选项,与以前的 Halo组件相比,Spark组件更注重设计和分离的UI组件模型。 2. **Flash Builder 4**: - **集成开发环境**:提供代码...
在本文中,我们将深入探讨如何在Flex中获取这些URL参数值。 首先,我们要明白,当我们使用Flex Builder开发应用程序时,编译后的SWF文件会被一个HTML容器包裹,因此在实际运行时,我们实际上是在运行这个HTML文件。...
在Flex 4中,最重要的变化之一是组件模型的改变,引入了Spark组件架构,它与原有的MX组件架构并行存在,但更注重设计和性能。Spark组件库提供了一套全新的UI组件,这些组件基于Flex 4的皮肤ning机制,允许开发者创建...
flex自定义桌面panel,可放大缩小,不会超出桌面大小
8. **布局管理**:Spark组件架构中的布局系统也得到了改进,提供更精细的布局控制和新的布局容器,以适应复杂应用的需求。 9. **性能提升**:Flex 4通过优化编译器和运行时,提高了应用的性能,特别是在处理大量...
同时,Flex4中的布局系统更加智能,能够根据内容自动调整大小,从而提供更好的用户体验。 ### 状态使用 Flex4在状态管理上也有所创新,引入了更强大的状态系统。Flex4的状态系统允许开发者创建复杂的用户界面转换...
2. 编写MXML文件:在主应用文件(通常是Main.mxml)中,添加Spark的Application组件,设置其宽度和高度,然后添加Label组件,并将文本属性设置为“Hello Flex4”。 3. 运行和调试:在IDE中运行项目,查看浏览器中的...
与之前的Flex版本相比,Flex4引入了全新的Spark组件架构,提供了更灵活的样式和皮肤机制,以及更强大的图形渲染能力。 二、Flex4的核心概念 1. MXML:是一种声明式语言,用于创建用户界面布局和组件结构。在Flex4中...
Flex Panel 是一种在富互联网应用程序(RIA)开发中常见的组件,尤其在Adobe Flex或Apache Flex框架下使用。它提供了一种灵活的方式,用于在用户界面上创建可自定义的、可调整大小的容器。在标题“flex panel窗体有...
本文将深入探讨FLEX4中的皮肤系统,特别是SparkSkin类,并通过实例展示如何创建和应用自定义皮肤。 1. SparkSkin的介绍: SparkSkin是Flex 4(Gumbo)引入的主要皮肤类,位于`spark.skins`包下。它是一个Group类型...
Flex4是一种基于ActionScript3和Flash Player的开源框架,用于构建富互联网应用程序(RIA)。它提供了丰富的组件库,包括MX和...在实际操作中,确保与Spark组件集兼容,将有助于在Flex4环境中获得更好的性能和体验。