当
我们新建一个flex应用的时候默认的布局方式就是绝对定位(layout="absolute"),这里的"absolute"CSS里的一样,任何控
件或者容器都是依据x,y坐标来定位的,你对组件有绝对的控制权,你想让多个组件重叠在一起显示都没问题,如果你有使用过Fireworks或者是
Flash你可以将这个<MX:Application>想像成画布一样的东西。
打开Flex Builder切换到设计模式,现在我们可以设计界面了,很简单咯,直接选择一个控件,拖放到画布上,设置一下在大小,嗯 ,就OK了。

如图我在画布(500px*500px)的右下角上放了一个按钮,在x=425,y=468的位置。
-
<
Button
-
-
x="425"
-
-
y="468"
/>
大多数时候,我们希望应用程序能自适应屏幕大小,不管整个窗口如何变化多端,按钮都能使终处在右下角的位置,这种情况下可以使用强制约束布局的方式,如图:
-
<
Button
-
-
right="10"
-
-
bottom="10"
/>
不管整个应用的窗口(浏览器...)如何变化,按钮将将使终被固定在离窗体右边10px,窗体底部10px的地方。
Using Layout Containers
在实现的应用当中,我们经常需要在动态的,添加,删除各种组件元素,这个时候就需要考虑使用
Flex
中的容器组件,像是:
HBox,VBox,Panel
等等。这些个容器,主要的作用就是指出,元素之前的排列关系,代替这前提到的用
X,Y
的绝对定位布局方式。
Hbox
是
"Horizonal Box"
的缩写,意思就是容器内的元素以水平的方式排列,
VBox
当然是以垂直的方式来排列元素,
Panel
内的元素可以选择的排序方式就多了
horizonally, vertically, absolutely
,都可以,而且它还自带了一个标题栏。
Flex
里当然不止这么几个容器组件,比如说
Grid
以表格的方式来排列元素,
Form
就像
html
中的
Form
用来接受用户的输入
…...
关于容器的详细介绍你可以看这里
(
http://livedocs.adobe.com/flex/3/html/containers_intro_1.html
)
,容器就是帮助你更好的排列各种组件的,比你手动一个个的去设置各个组件
X,Y
坐标方便多了。
Using Layout Controls
这
类组件在布局的时候起一些辅助作用,<mx:Spacer/>看它的名字就晓得,这是一个空白组件,虽然也有width,hieght等属
性,但是不会显示,是用来占位的,比如说将两个靠得太紧的控件对象,分开一点。还有就是<mx:HRule/>,<mx:VRule
/>用来显示一条水平或垂直的直线。像是你需要在Form里区分一下不同的区域,要以用这个。
Diagramming Your Layout
在我们开发这前,画个大概的草图是很有必要的,做过div+css的同学应该很有经验,这样一是可以帮助你节省时间,二是可以帮助你精简代码(有可能会添加一些不必要容器,或者是组件)
-
package
{
-
-
App
-
-
-header (centered, 800px wide)
-
-
-body (centered, 800px wide)
-
-
-content (left aligned)
-
-
-ads (right, stacked vertically, 200px wide)
变成草图就是这个样子:
实际的MXML:
-
<Application
-
-
layout="vertical"
-
-
horizontalAlign="center"
-
-
width="800"
>
-
-
<YourHeader width="800"
/>
-
-
<HBox>
-
-
<YourContent width="600"
/>
-
-
<VBox>
-
-
<Ad width="200"
/>
-
-
<Ad width="200"
/>
-
-
</VBox>
-
-
</HBox>
-
-
</Application>
上面的所有的控件对象的大小都是直接设置的像素值,如果你想整个界面变得更有弹性点呢,可以改成百分比的表达试,这样整个界面就会自适应大小了,但是叫,在有些情景下:你觉得YourContent 部分最大只能到600px,不然会影响整个应用的美观,便是直接宽度成600px,又会让失去百分比所带来的弹性,杂个办呢?我们可以使用一个叫“
maxWidth”的属性来解决这个问题,“
maxWidth=600”的意思就是引个对象的最大宽度只能到600px,随便你外部窗体的大小怎么变化,反正
YourContent的最大宽度只能是600px。
这里有一个原则性的问题,需要你注意,尽量减少容器的嵌套使用,为了应用的性能考虑,比较下面三种实现,虽然实现的效果是一样的,但是很显示第三个的代码更简洁一些:
-
<Application layout="absolute"
>
-
-
<HBox width="100%"
>
-
-
<Button
label=
"Left"
/>
-
-
<Spacer width="100%"
/>
-
-
<Button
label=
"Left"
/>
-
-
</HBox>
-
-
</Application>
-
-
<Application layout="horizontal"
>
-
-
<Button
label=
"Left"
/>
-
-
<Spacer width="100%"
/>
-
-
<Button
label=
"Left"
/>
-
-
</Application>
-
<Application layout="absolute"
>
-
-
<Button
label=
"Left"
left=
"5"
/>
-
-
<Button
label=
"Left"
right=
"5"
/>
-
-
</Application>
Using Percentage-based Sizes
最
后来说一下最让人头痛的如何i为组件设置合适大小的问题:如如果有两个,或者更多的组件对象在一个HBox,VBox,或者是其它的容器组件内,而且使用
的%的方式设置其各自的宽度,它们会相互争夺空白的空间,比如说,对于两个组件对象将宽度设定为100 % ,其实际的效果各占外层容器空间的50
%,规制对
下面的这种情况也同样适用,一个button的控件的对象宽度设置成35px,别外的一个albel控件的宽度设置为100%,实现的效果,label的
宽度应该是外层容器的宽度减去35px,像label这类控件还有个问题,可见域通常比你设置的宽度要小,就是看起来,好像没有达到你设置的宽度,其实宽
度是达到你的要求的(TTM绕了)。
上面说了,控件对象的大小其实是跟外壳父容器大小是相关的(使用%方式的时候),如果外层父容器没有明确的设置大小呢?子控件对象大小如果设置的%比的
值,其实是没有意义的,控件会按最小需求来显示。所以如果你是使用%的来设置控件对象的大小,那你有必要保证,它的外层父容器有显示的设置大小。
如果你使用%的方式设置控件对象的宽度:不设置控件对象的大小,会使用控件的默认大小(设置了当然就不用说了),如果控件太大,超过外层容器的大小,容器
的滚动条就出来了。额,如果
是使用像素值的方式设置控件对象的宽度:外层容器没有显示的设置过宽度,那外层容器的大小是随着内部控件的大小一起变化的,也就说不存在会不会超过外层容
器大小的说法,意味着滚动条一直不会出现,当然你有显示设置外层容器的大小,控件的大小超过的话,滚动条照样会出现,试试下面这两个例子会更容易理解:
-
<Panel width="200"
>
-
-
<Image width="400"
/>
-
-
</Panel>
会出现滚动条
-
<Panel>
-
-
<Image width="400"
/>
-
-
</Panel>
这个就不会出现滚动条
还有一点需要注意,外层容器没有显示的设置大小的话,你将不能使用类的属性Align,用了也白用!
还是例子,试一下就明白了:
-
<VBox width="100%"
>
-
-
<HBox horizontalAlign="center"
width=
"100%"
>
-
-
<Button
/>
-
-
</Hbox>
-
-
</VBox>
然后 你去掉宽度再看看
Conclusion
好了就这么多了,关键还是要多练习!自然就明白了!其实没那么困难!
分享到:
相关推荐
with nearly 98% of all web browsers and cellular phones running the Flash player needed to use Flash and Flex applications, knowledge of Flex is indispensable for any serious web designer and ...
with nearly 98% of all web browsers and cellular phones running the Flash player needed to use Flash and Flex applications, knowledge of Flex is indispensable for any serious web designer and ...
with nearly 98% of all web browsers and cellular phones running the Flash player needed to use Flash and Flex applications, knowledge of Flex is indispensable for any serious web designer and ...
内容概要:本文档《ccnp_300-430.pdf》涵盖了与Cisco无线网络配置相关的多个选择题及其答案解析。文档详细探讨了FlexConnect AP在不同模式下的行为、AP模式和子模式的选择、客户端特征配置、图像传输优化、Cisco OEAP配置、QoS设置、多播配置、安全措施(如入侵保护、恶意AP检测)、位置服务配置以及BYOD策略实施等内容。文档不仅提供了具体的配置命令和选项,还解释了每种配置背后的逻辑和技术原理。 适合人群:具备一定网络基础知识,特别是对Cisco无线网络设备有一定了解的技术人员,包括但不限于网络管理员、无线网络工程师和CCNP认证考生。 使用场景及目标: ① 为无线网络工程师提供实际操作指导,确保在不同场景下正确配置Cisco无线设备; ② 帮助CCNP认证考生复习并掌握相关知识点; ③ 协助IT管理员解决日常无线网络管理中的常见问题,如连接不稳定、性能不佳或安全性问题; ④ 支持企业IT部门制定和实施BYOD策略,确保员工个人设备接入公司网络的安全性和效率。 阅读建议:由于文档内容较为专业且技术性强,建议读者首先熟悉Cisco无线网络的基本概念和术语。在阅读过程中,应结合具体的工作环境和需求进行理解,并尝试将所学知识应用到实际工作中。对于不熟悉的术语或配置命令,可以通过查阅官方文档或在线资源进一步学习。此外,通过模拟环境练习配置也是巩固知识的有效方法。
内容概要:本文探讨了电力系统频率稳定性问题,特别是在风电大规模接入背景下,传统火电和水电调频方法面临的挑战及其解决方案。文中通过构建IEEE9节点系统模型,利用Simulink和Python进行仿真,比较了单一火电调频与风火联合调频的效果。研究表明,引入虚拟惯性控制和下垂控制可以显著提高系统的响应速度和稳定性,同时指出水电调频中存在的水锤效应对频率稳定的影响及相应的抑制措施。 适合人群:从事电力系统研究的专业人士、高校相关专业师生以及对电力系统调频感兴趣的工程技术人员。 使用场景及目标:适用于希望深入了解电力系统调频机制的研究人员和技术人员,旨在帮助他们掌握最新的调频技术和理论,提升实际工作中解决问题的能力。 其他说明:文章不仅提供了详细的数学模型和仿真代码,还分享了一些实用的小技巧,如参数优化方法和仿真加速策略,有助于读者更好地理解和应用所介绍的技术。
内容概要:本文详细介绍了如何在COMSOL中进行热湿耦合仿真,特别是针对蒸汽在顶部冷凝的复杂场景。首先搭建了一个20cm高的多孔介质层模型,设置了必要的物理场(如热湿传递和层流),并讨论了材料参数的选择,特别是蒸汽扩散系数和孔隙度的变化。接着深入探讨了边界条件的设置方法,包括蒸汽入口的速度和温度控制,以及冷凝边界的处理方式。文中还强调了求解器设置的重要性,提出了稳态解和瞬态解相结合的方法,并给出了具体的网格划分技巧。最后,文章提供了关于冷凝水量计算和表面张力处理的实用建议,确保仿真结果更加接近实际情况。 适合人群:具有一定COMSOL使用经验的研究人员和技术人员,特别是从事热湿耦合仿真领域的专业人士。 使用场景及目标:适用于需要精确模拟蒸汽冷凝过程的实际工程项目,如工业设备设计、建筑环境控制等。目标是帮助用户掌握COMSOL中热湿耦合仿真的关键技术,提高仿真精度和可靠性。 其他说明:文中提供的代码片段和具体参数设置对于初学者来说非常有价值,能够快速上手并应用于实际工作中。此外,文章还分享了一些常见的错误及其解决方法,有助于避免仿真过程中常见的陷阱。
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文详细介绍了基于西门子S7-200smart PLC和西门子触摸屏构建的恒压供水(无负压供水)系统。系统通过PLC对电机进行智能控制,确保水压稳定。主要功能包括一拖二自动控制、PID调节实现恒压控制以及友好的人机交互界面。文中还展示了详细的PLC控制代码和PID控制算法,并讨论了电气图纸的设计要点和实际工程中的注意事项。 适合人群:从事自动化控制领域的工程师和技术人员,尤其是熟悉PLC编程和恒压供水系统设计的专业人士。 使用场景及目标:适用于需要稳定供水的工业生产和居民生活场景,旨在提高供水系统的可靠性和稳定性,减少设备磨损和能源浪费。 其他说明:文章不仅提供了完整的系统设计方案,还包括了许多实际调试经验和常见问题的解决方法,有助于读者更好地理解和实施该系统。
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文详细介绍了滑模观测器和PLL在STM32F1平台上的C代码实现。滑模观测器用于估计系统内部状态,尤其适用于电机控制领域;PLL则用于确保输出信号相位与输入信号相位保持一致。文中展示了两种滑模观测器的实现方法:一种采用符号函数进行硬切换,另一种采用饱和函数进行软化处理。此外,文章还强调了使用TI的IQmath库进行定点计算加速,以提高运算效率并减少资源占用。通过具体的代码示例和调试技巧,作者分享了如何在STM32F1平台上实现高效稳定的滑模观测器和PLL系统。 适合人群:嵌入式系统开发者、电机控制系统工程师、熟悉C语言编程的技术人员。 使用场景及目标:① 实现高效的滑模观测器和PLL系统,应用于电机控制和其他实时性要求较高的场景;② 学习如何使用IQmath库进行定点计算加速,优化嵌入式系统的性能;③ 掌握调试技巧,确保系统稳定运行。 其他说明:文章提供了详细的代码示例和调试经验,帮助读者更好地理解和实现滑模观测器和PLL系统。同时,文中提到的一些注意事项和常见问题解决方案也非常实用。
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文详细介绍了如何利用C语言在Simulink环境中构建逆变器的重复控制系统,旨在将逆变器的总谐波畸变率(THD)降低至0.47%。文中首先展示了核心的C语言结构体和函数,如RepetitiveController结构体用于封装延迟存储器、零相位滤波器和低通滤波器,repetitive_control函数则实现了核心算法。接着,文章解释了离散化处理的方法,包括主电路和控制部分的不同步长运行机制,以及多速率仿真的应用。此外,还讨论了陷波器的具体实现及其参数调整,强调了双线性变换在滤波器设计中的重要性。最后,文章提到了代码的高效移植性,指出通过这种方式可以在仿真阶段就为后续的实际硬件部署做好准备,大大减少了调试时间和复杂度。 适合人群:从事电力电子领域的工程师和技术人员,尤其是对逆变器控制和信号处理有一定了解的人群。 使用场景及目标:适用于需要精确控制逆变器输出质量的应用场合,如光伏逆变器、UPS电源等。主要目标是通过高效的算法设计和优化,确保逆变器输出的THD达到极低水平,同时提高代码的可移植性和易维护性。 其他说明:本文不仅提供了详细的理论背景和技术细节,还分享了许多实践经验,如环形缓冲区的使用、陷波器的参数选择等,对于理解和实施逆变器控制具有很高的参考价值。
Outlook新邮件到达时不显示通知
内容概要:本文详细介绍了三相维也纳PFC开关电源的设计、调试经验和量产方案。主要内容涵盖三相AC输入、无桥PFC结构、±400V DC输出的特点及其优势。文中提供了关键代码片段,如PFC开关频率控制、PWM初始化、过流保护等,并深入探讨了原理图设计、PCB布局要点以及EMI滤波措施。此外,还涉及移相全桥和LLC方案的应用,特别是在高效率、高功率密度场合的表现。作者分享了大量实战经验,包括硬件选型、软件调试技巧和常见问题解决方法。 适合人群:从事电力电子、工业电源设计的技术人员,尤其是对三相PFC、移相全桥和LLC技术感兴趣的工程师。 使用场景及目标:帮助读者理解和掌握三相维也纳PFC的工作原理和技术细节,提供实用的调试经验和量产解决方案,适用于新能源充电桩、大功率服务器电源等领域的产品开发。 其他说明:文章不仅涵盖了理论知识,还包括大量的实战案例和代码示例,有助于读者在实践中快速上手并解决问题。
黑板卡通熊儿童教学教案课件模板
内容概要:本文详细介绍了如何利用Python编程语言进行沟槽开挖土方量的计算,采用断面法作为主要手段。首先定义了基本参数如原地面标高、设计沟底标高等,接着通过函数calculate_section_area实现了断面面积的计算,考虑了边坡系数的影响。然后,通过遍历多个断面并应用平均面积法或棱台公式求解总土方量。此外,还探讨了如何使用matplotlib库绘制断面图以及处理复杂地形的方法,如使用pandas处理Excel数据和geopandas进行空间分析。文中强调了实际工程项目中需要注意的问题,如断面间距的选择、不同地质层的分段计算等。 适合人群:从事土木工程、市政建设等领域的一线工程师和技术人员,尤其是那些希望提高工作效率、减少手工计算错误的人群。 使用场景及目标:适用于需要精确计算沟槽开挖土方量的实际工程项目中,帮助工程师们更好地规划施工进度、控制成本。同时,也为后续的设计调整提供了科学依据。 其他说明:本文不仅提供了具体的Python代码实现,还分享了许多实践经验,如避免常见的计算陷阱、确保数据精度等。对于想要深入理解土方量计算原理及其自动化实现的人来说,是一份非常有价值的参考资料。
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文详细介绍了如何利用Matlab实现MLP(多层感知机)进行时间序列预测。首先,通过对一维时间序列数据进行预处理,包括加载、划分训练集和测试集以及标准化。接着,构建了一个带有单隐藏层的MLP模型,并设置了训练参数,如隐藏层神经元个数、学习率和最大迭代次数。随后,使用训练好的模型对测试数据进行了预测,并通过R²和MAE两个指标评估了模型的性能。最后,提供了完整的代码实现和一些优化建议,如调整验证集比例和加入置信区间可视化。 适合人群:具有一定编程基础,尤其是熟悉Matlab和机器学习基础知识的研究人员和技术爱好者。 使用场景及目标:适用于需要进行时间序列预测的场景,如金融市场的趋势分析、气象预报等。目标是帮助读者掌握MLP在时间序列预测中的具体实现方法,理解各个步骤的作用,并能够根据自己的数据集进行相应的调整和优化。 其他说明:文中还提到了一些实用的小技巧,例如如何避免常见错误(如数据格式问题)、选择合适的隐藏层神经元数量以及如何正确地进行数据标准化等。此外,强调了在实际应用中可以通过调整模型参数来提高预测精度。
修改PDF元属性作者信息