当
我们新建一个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 ...
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
毕设工坊:专注于计算机毕业设计项目的交流与资源共享平台,涵盖各类技术文档、代码示例及实战经验分享,助力学子顺利完成学业挑战。
【window 可视化nvm管理node版本 nvm-desktop】
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
# 基于microbit编程语言的mymicrobit扩展插件项目 ## 项目简介 这是一个基于microbit编程语言的mymicrobit扩展插件项目。该项目旨在提供额外的功能和特性,以扩展microbit编程环境。通过此插件,用户可以轻松地在MakeCode环境中进行编程,实现对micro:bit设备的更多控制和功能实现。 ## 项目的主要特性和功能 1. 扩展性提供了丰富的积木块和代码库,允许用户轻松实现复杂的编程逻辑和功能扩展。 2. 图形化编程支持通过积木块形式的图形化编程,降低编程门槛,方便初学者快速上手。 3. 实时预览提供了积木块的实时预览功能,方便用户直观地了解代码块的逻辑和功能。 4. 与MakeCode无缝集成可以直接在MakeCode环境中导入和使用,无需额外的配置和安装。 ## 安装使用步骤
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
项目资源包含:可运行源码+sql文件 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 项目具有较高的学习借鉴价值,也可拿来修改、二次开发。 有任何使用上的问题,欢迎随时与博主沟通,博主看到后会第一时间及时解答。 开发语言:Python 框架:django Python版本:python3.8 数据库:mysql 5.7 数据库工具:Navicat 开发软件:PyCharm 浏览器:谷歌浏览器
第三章-局域网-思维导图
内容概要:PT300机械故障综合模拟实验台由瓦仑尼安教学设备有限公司生产,旨在帮助用户深入了解振动特征知识及复杂转子振动频谱分析,实现精密振动分析和精准故障诊断。该实验台能模拟轴承故障、不平衡、不对中、设备松动、转子摩擦等多种机械故障现象,可进行不同转速下的轴承故障频率识别、转子静动平衡模拟试验、设备启停机测试等实验。设备采用高效节能ABB三相交流电动机,配备高精度转速控制和测量模块,确保运行稳定。此外,实验台还设有透明防震安全罩和互锁开关,保障实验安全。; 适合人群:高校师生、科研人员等需要学习或研究机械故障诊断相关理论知识和实践技能的人群。; 使用场景及目标:①用于高校等教育机构的教学,辅助学生理解机械故障诊断的理论知识和实践技能;②满足科研人员进行机械故障诊断算法验证、故障特征分析等科研需求。; 其他说明:PT300机械故障综合模拟实验台的每个部件均经过高精度加工,确保在不同振动状态下稳定运行。用户可根据期望分析特定部件的故障特征。设备尺寸为735mm(长)×310mm(宽)×350mm(高),保修一年,且提供免费操作指导服务。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
内容概要:本文详细介绍了使用COMSOL Multiphysics的弱形式接口对三维光子晶体进行数值模拟的方法和技巧。文章通过具体的代码示例,解释了如何构建光子晶体的介电常数分布、设置弱形式PDE、处理电磁场切向连续性、应用Floquet周期边界条件以及特征值求解等关键步骤。特别强调了弱形式接口相比传统物理场接口的优势,如灵活性和对复杂边界的处理能力。文中还分享了一些实用的经验和注意事项,如布洛赫边界条件的实现、特征值求解器参数的优化配置以及网格划分的技巧。 适合人群:具备一定电磁学和数值模拟基础的研究人员或工程师,尤其是对光子晶体仿真感兴趣的读者。 使用场景及目标:①理解并掌握COMSOL弱形式接口在光子晶体仿真中的应用;②学习如何通过弱形式设置处理复杂的电磁场问题;③提高对光子晶体能带结构和带隙特性的认识;④掌握特征值求解和网格划分的最佳实践。 阅读建议:由于本文涉及较多的具体代码和物理概念,建议读者在阅读过程中结合COMSOL软件进行实际操作,同时查阅相关电磁理论书籍以加深理解。此外,对于文中提到的一些具体参数设置和技巧,可以通过尝试不同的配置来巩固所学知识。
# 基于Arduino平台的INSPTComputacion2项目 ## 项目简介 INSPTComputacion2是一个基于Arduino平台的开发项目。该项目旨在通过Arduino的硬件和软件能力,实现一系列计算和交互功能。通过此项目,用户可以体验到Arduino在嵌入式系统、物联网和微控制器等领域的强大功能。 ## 项目的主要特性和功能 该项目的主要特性和功能包括但不限于以下几点 1. 嵌入式系统开发利用Arduino的硬件资源,开发嵌入式系统应用。 2. 物联网应用实现Arduino与物联网技术的结合,进行数据采集、传输和控制。 3. 交互设计通过Arduino实现人机交互,如按钮控制、LED显示等。 4. 数据处理利用Arduino进行数据处理和分析,如温度、湿度等环境数据的采集和处理。 ## 安装使用步骤 以下是在已下载本项目源码文件后的安装使用步骤 1. 确保已安装Arduino IDE软件。
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
Python数据结构-学习笔记
该系统展示了一个电影在线购票系统的结构图,系统分为前台和后台两部分。前台包括首页、影院信息、电影信息、电影资讯和个人中心等模块,主要面向普通用户,提供电影浏览、选座购票、个人账户管理等功能。后台部分由管理员通过后台模块进行操作,包括系统首页、用户管理、场次管理、时间段管理、影院信息管理、电影分类管理、电影信息管理、订单管理和个人中心等模块,用于系统的维护和管理,如用户信息维护、电影和影院信息更新、订单处理等。整个系统旨在为用户提供便捷的在线购票体验,同时确保后台管理的高效和有序。