使用 Flash Builder 4 创建基于约束的布局

当用户调整应用程序窗口的大小时,可以对组件使用约束来自动调整组件的大小及其在容器中的位置。通常在 MXML 编辑器的设计模式下定义布局约束。还可以在源代码模式下编辑组件的属性来定义布局约束。

关于基于约束的布局

Flex 支持基于约束的布局。基于约束的布局在支持绝对定位的容器中可用。对于 Spark 容器,默认布局 BasicLayout 支持绝对定位。在使用基于约束的布局时,可以将组件的一个或多个边锚定到容器的边缘或者容器的约束区域。您还可以指定组件相对于锚点的偏移量。当用户调整容器的大小时,容器组件的大小和位置由所定义的锚点确定。

基于约束的布局示例

在以下示例中,通过在“属性”视图中拖动控件或者设置 xy 坐标,将所有控件绝对定位在容器中。图中的箭头指示在用户调整布局大小时,根据以下项目符号列表所指定的约束如何使控件运行。

查看完全大小图形

为了确保用户调整应用程序大小时布局也能正确调整,对控件应用了以下若干布局约束:

  • 将 Label A、Label B 和 Label C 锚定到左边和上边,因此在用户重新调整布局大小时这些标签将保留在原地。
  • 将 TextInput A 和 TextInput B 锚定到左右两边,因此在用户重新调整布局大小时,控件将水平拉伸或压缩。
  • 将 TextArea C 锚定到上下左右四边,因此在用户重新调整布局大小时,控件将在水平和垂直方向上拉伸或压缩。
  • 将 Button 控件锚定到右边和下边,因此在用户重新调整布局大小时,控件将保持相对于容器右下角的位置。

布局扩大时,TextInput A 和 TextInput B 控件会水平拉伸,TextArea C 控件会在水平和垂直方向上拉伸,Button 控件会向右下方移动。

基于约束的布局和绝对定位

要创建基于约束的布局,请使用支持绝对定位的容器。对于 Spark 容器,请将布局属性设置为 BasicLayout。如果没有为 Spark 容器指定布局属性,默认属性为 BasicLayout。对于 MX 容器,只能针对 Application、Canvas 和 Panel 容器使用绝对布局。对于 Canvas 容器,绝对布局是默认布局。对于 MX Application 和 Panel 容器,将布局属性设置为绝对可实现绝对定位。对于 MX 容器,layout="absolute"属性将覆盖容器的布局规则,并且使您可以将组件拖动并定位到容器中的任何位置。

使用高级约束布局

您还可以定义锚定到水平和垂直约束区域的约束。在以下情况下,高级约束非常有用:

  • 当控件动态调整大小以适合其内容时。例如,显示本地化字符串的控件。
  • 当多个列需要大小相同或者保持特定百分比宽度时。

注: 可以使用嵌套 HGroup 和 VGroup 容器来实现类似于高级约束的效果。

对于高级约束布局,可以定义 ConstraintColumn 区域和 ConstraintRow 区域。将组件约束到这些区域的边缘或中央。在容器中,约束列从左向右编排,而约束行从上向下编排。可以使用固定像素尺寸(宽或高)或者使用父容器空间的百分比来定义约束区域。约束列集和行集可以是固定尺寸或百分比尺寸的任意组合。父容器中的组件约束到容器、约束区域或者容器和区域约束的任意组合。在源代码模式下使用 MXML 编辑器指定高级约束。

设置组件的布局约束

可以在具有绝对定位的容器中为组件指定基于约束的布局。

注: 但只有通过编辑源代码才能设置相对于约束列和约束行的布局约束。

  1. 请确保打开的 MXML 文件包括具有绝对定位的容器。
  2. 在 MXML 编辑器的设计模式下,将组件从“组件”视图拖动到容器中。
  3. 通过在设计区域中移动组件,或者在“属性”视图(“窗口”>“属性”)中设置x和y属性,在容器中定位组件。
  4. 在设计区域中选择组件。
  5. 在“属性”视图中,滚动到“布局”类别中的约束工具。
  6. 参考下表选择相应约束复选框,以在用户重新调整应用程序大小时达到所需效果:

    效果 约束
    保持组件的位置和大小
    水平移动组件 左或右
    垂直移动组件 上或下
    水平或垂直移动组件 左上或者右下
    水平调整组件大小 左和右
    垂直调整组件大小 上和下
    同时沿水平和垂直方向调整组件的大小 左和右以及上和下
    将组件水平居中 水平居中
    将组件垂直居中 垂直居中
    同时沿水平和垂直方向将组件居中 垂直居中和水平居中
  7. 指定约束与容器边缘的距离。例如,可以将组件设置为距左边缘 90 像素,距右边缘 60 像素。用户调整应用程序大小时,组件将拉伸或压缩,以保持与应用程序窗口边缘的这两个距离。Flash Builder 在 MXML 代码中按如下方式表达这些约束:
    <s:TextInput y="160" left="90" right="60"/>

    注: y 值将根据为左约束和右约束指定的值进行修改。

    本文来自Adobe官网http://help.adobe.com/zh_CN/Flex/4.0/UsingFlashBuilder。

使用 Flash Builder 4 创建基于约束的布局

时间: 2024-10-30 22:43:32

使用 Flash Builder 4 创建基于约束的布局的相关文章

Flash Builder 类创建时增加注释

窗口>首选项>Flash Builder>文件模板>ActionScript>ActionScript 类>编辑 ${package_declaration} { ${import_declaration} /** * * @author XXX * @time ${date} * */ ${class_declaration} { ${class_body} } }

使用 Flash Builder 的 Apple iOS 开发过程

使用 Flash Builder 的 Apple iOS 开发过程 iOS 开发和部署过程概述 构建.调试或部署 iOS 应用程序前的准备工作 在测试.调试或安装 iOS 应用程序时选择的文件 将应用程序部署到 Apple App Store 时选择的文件 在使用 Flash Builder 开发 iOS 应用程序之前,必须了解 iOS 开发过程和如何从 Apple 获得必需的证书. Adobe 建议 有想要分享的教程吗?   在 Flash Builder 中开发 Apple iOS 应用程序

Flash Builder 4.7 注册机完美激活方法

Flash Builder 4.7 破解注册方法目前较为通用的三种方法: 第一种:三步修改配置文件方法,这种有开发者反应这种方法在升级和创建纯 AS 项目时会存在问题,但我懒的去试这种方法的主要原因是它太麻烦了. 第二种:利用 CS6 版的通用破解补丁文件 amtlib.dll 替换方法,这种方法倒是挺简单,但有开发者反应说这种方法会导致启动软件时间变长,我在第一次安装 FB4.7 时就是用了这种方法,不过我并没有在意过它的启动时间是否变长了,因为 FB 本身就是基于 Eclipse 的,JAV

Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系

转自zrong's blog:http://zengrong.net/post/1295.htm ActionScript ActionScript通常简称为AS,它是Flash平台的语言.AS编写的程序,最终可以编译成SWF.SWC.SWF就是我们常说的Flash动画.但是现在SWF已经不仅仅是动画,而是RIA的载体. ActionScript有3个版本,分别是1.0版(AS1),2.0版(AS2)和3.0版(AS3).只有Flash Player 9及以上播放器才支持AS3编译的SWF.这三

升级Flash Builder 4.6中的Flash Player版本

测试有效 本人按此方法升级到了flash player 15 Adobe自发布Flash Builder 4.6后,就暂停了Flash Builder新版本的发布.但AIR和FlashPlayer版本仍然保持不断的更新.在下载新的AIRSDK并覆盖到Flash Builder 4.6 sdks目录下的相应版本目录后,发现当用到了升级后的FlashPlayer新增特性功能后仍然无法通过调试,解决的惯用方法就是在“附加的编译器参数”项中设置版本号(如:-swf-version=16,但这种设置是针对

FLASH BUILDER 代码模板修改

打开"窗口">“首选参数”对话框,然后选择“Flash Builder”>“编辑器”>“代码模板” 代码模板修改-选中需要修改的代码模板点击"编辑" 代码模板导出-点击"导出"-保存为XML(可选中多条同时导出) <?xml version="1.0" encoding="UTF-8" standalone="no"?><templates>&l

Flash Builder trace()方法在控制台没有输出解决方法

首先将flash运行的浏览器改为IE,不然会出错,window->preferences->general->web broswer,然后选择IE. Flash Builder 的Debug模式下使用trace()方法在Console中输出需要用到flashplayer的Debug版本,下载地址:http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_ax_debug.exe ,安装成功后在Deb

[翻译:ASP.NET MVC 教程]创建路由约束

赶集要发:http://www.ganji18.com 你使用路由约束来使浏览器请求限制在匹配特定路由的中.你可以使用一个正则表达式来具体化一个路由约束. 例如,设想你已在Global.asax文件中定义了清单1中的路由. 清单1--Global.asax.cs routes.MapRoute( "Product", "Product/{productId}", new {controller="Product", action="De

eclipse安装Flash Builder 4后变成中文,怎么解决

修改eclipse.ini启动参数: -startup plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502 -nl en_US -product org.eclipse.epp.package.jee.product --launcher.defaultAc