Flex完全自学入门手册
- 格式:pdf
- 大小:1.06 MB
- 文档页数:43
译者声明1.请大家在转载和使用时保持本文的完整性。
2.本文所有资料均来自Flex官方文档,其英文版权归Adobe公司所有。
3. 文中某些内容根据译者的理解稍作改动,因此与原版英文在文字上不完全一致。
同时,由于译者水平有限,翻译不妥之处请大家多多见谅。
重庆大坪刘刚第一章Flex是如何工作的该部分文档的内容是为用户提供关于Adobe®Flex 工作机制的一个快速综述。
通过本章节的学习,你可以创建你的第一个Flex 应用程序,并将它与你以前所熟悉的Web开发技术进行比较,以领会Flex的内涵和精髓。
第一节构建并运行Flex应用程序Flex是一个提供开发设计和运行支持的架构,它可以使开发人员创建利用Adobe® Flash® Player 9作为前台的“富客户端互联网应用程序/rich Internet applications/RIA”,以满足用户更为直观和极具交互性的在线体验。
开发Flex应用程序的典型步骤如下(通常是这样):1. 选取一系列预先定制好的、用于设计应用程序界面的组件(如表格、按钮等等)2. 布置组件以设计用户界面。
3. 使用样式和主题来增强视觉方面的设计。
4. 添加动态行为(例如程序部件之间的相互作用)。
5. 定义并连接所需的数据库服务。
6. 将源代码编译成SWF文件,然后在Flash Player中运行。
一个典型的Flex应用程序包括如下元素:1. Flex frameworkAdobe® Flex 2 framework包含了创建RIA所需要的所有组件,它们是:用于应用程序布局规划的容器;针对用户界面和从用户处获取数据的控制(例如文本框和按钮);广泛支持的数据绑定、数据格式化、以及有效值验证;事件驱动的开发模式。
Flex framework被包含在公用组件库(SWC)文件中。
2. MXML每个Flex应用程序至少包含有一个MXML文件,它被作为该程序的主文件。
flex布局⼊门总结——语法篇⼀ Flex布局?Flex全名Flexible Box即弹性布局,基本⽤法:display:flex;⾏内元素:display:inline-flexwebkit内核的浏览器必须加上-webkit前缀.box{display: -webkit-flex; /*safari */display: flex;}注意,设为 Flex 布局以后,⼦元素的float、clear 和vertical-align 属性将失效⼆基本概念采⽤ Flex 布局的元素,它的所有⼦元素⾃动成为容器成员,称为 Flex 项⽬(flex item),简称"项⽬"。
容器默认存在两根轴:⽔平的主轴(main axis)和垂直的交叉轴(cross axis)三容器属性(即外层盒⼦属性)1. flex-direction属性 : 决定主轴的⽅向(项⽬的排列⽅向).box {flex-direction: row | row-reverse | column | column-reverse; /* row是默认值 */}2. flex-wrap属性 : 默认项⽬都排在⼀条轴线上,flex-wrap决定项⽬换⾏⽅式.box{/* nowrap默认值不换⾏; wrap换⾏,第⼀⾏在上⽅; wrap-reverse换⾏,第⼀⾏在下⽅。
*/flex-wrap: nowrap | wrap | wrap-reverse;}3. flex-flow属性 :flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap.box {flex-flow: <flex-direction> || <flex-wrap>;}4.justify-content 属性 : 项⽬在主轴上的对齐⽅式, 具体对齐⽅式与轴的⽅向有关.box {justify-content: flex-start | flex-end | center | space-between | space-around;/* 依次是左对齐 ; 右对齐;居中; 两端对齐,项⽬之间的间隔相等; 每个项⽬两侧的间隔相等(项⽬之间的间隔⽐项⽬与边框的间隔⼤⼀倍)*/}5.align-items 属性: 项⽬在交叉轴上如何对齐, 具体的对齐⽅式与交叉轴的⽅向有关.box {align-items: flex-start | flex-end | center | baseline | stretch;}flex-start:交叉轴的起点对齐。
第一章Flex是如何工作的该部分文档的内容是为用户提供关于Adobe®Flex工作机制的一个快速综述。
通过本章节的学习,你可以创建你的第一个Flex应用程序,并将它与你以前所熟悉的Web开发技术进行比较,以领会Flex的内涵和精髓。
第一节构建并运行Flex应用程序Flex是一个提供开发设计和运行支持的架构,它可以使开发人员创建利用Adobe®Flash®Player9作为前台的“富客户端互联网应用程序/rich Internet applications/RIA”,以满足用户更为直观和极具交互性的在线体验。
开发Flex应用程序的典型步骤如下(通常是这样):1.选取一系列预先定制好的、用于设计应用程序界面的组件(如表格、按钮等等)2.布置组件以设计用户界面。
3.使用样式和主题来增强视觉方面的设计。
4.添加动态行为(例如程序部件之间的相互作用)。
5.定义并连接所需的数据库服务。
6.将源代码编译成SWF文件,然后在Flash Player中运行。
一个典型的Flex应用程序包括如下元素:1.Flex frameworkAdobe®Flex2framework包含了创建RIA所需要的所有组件,它们是:用于应用程序布局规划的容器;针对用户界面和从用户处获取数据的控制(例如文本框和按钮);广泛支持的数据绑定、数据格式化、以及有效值验证;事件驱动的开发模式。
Flex framework被包含在公用组件库(SWC)文件中。
2.MXML每个Flex应用程序至少包含有一个MXML文件,它被作为该程序的主文件。
MXML是一种标记语言,它是基于XML的一种实现,用来创建Flex应用程序。
你可以使用它去声明程序中所使用的标签结构的定义。
3.ActionScript3.0你可以使用ActionScript3.0为应用程序添加动态行为,它是基于ECMAScript的一种实现,类似于Jav aScript。
目录1. Flex 基础学习 (2)1.1 Actionscript该学的重点 (2)1.2 Flex framework 的重点 (2)1.3 Component 该学些什么 (2)1.4 manager 是什么 (2)1.5 Style/Skin 的重点 (3)1.6 学完基本功后下一步 (3)2. Flex 在项目中的创建 (3)2.1使用mxml文件简单介绍 (5)2.2在应用程序中动态加载模块的方法 (6)2.3 Flex中使用tree组件 (7)2.4 Flex 中关于Tree 的详解介绍 (7)3.如何使用封装好的组件 (11)3.1 以QdpHTTPService组件为例说明 (12)3.2 以树中封装好的组件为例 (12)4.Flex 调试 (13)4.1 增加断点 (13)4.2调试程序 (13)4.3调试设置 (13)4.4调试方法 (15)5. Flex的使用 (16)5.1 Flash Builder 4常用快捷键 (16)5.2 使用Flex帮助 (17)6.ActionScript 3.0概述 (17)6.1 使用ActionScript 3.0 (17)6.2创建第一个ActionScript 3.0应用程序 (18)6.3数据类型 (18)7.Flex 组件 (19)7.1 为什么要创建自定义组件 (19)7.2 怎样创建自定义组件 (19)7.3 如何在项目中使用自定义组件 (22)7.4 Flex 组件的文件类型 (22)7.5 对于MXML 和ActionScript 文件 (23)7.6 对于SWC 文件 (23)7.7 对于RSL 文件 (24)8.Flex 代码示例 (24)1. Flex 基础学习1.1 Actionscript该学的重点从最底层看起,最下面的 actionscript 3是一切的基础,它是 flash/flex编程使用的唯一程式语言, actionscript 这个语言,包含:它的基本语法与结构(array, hash, loop, if else…)2 DisplayList (DisplayObject, DisplayObjectContainer)与 Event system(bubbling, propagating…)Sound, Video, NetConnection 与 Graphics class1.2 Flex framework 的重点基本上 flex framework 就是用 actionscript 写成的框架,flex Framework 整个体系非常博大精深,通常一般人不太可能完整把它学完,只需要针对最常用到的部份熟悉就好,图中列出的那三块(component, managers, style/skin)就是我个人认为所有初学者最优先该学会的。
目录在FLEX中使用样式方法 (3)一.使用本地样式定义 (3)二、使用外部样式表 (3)三、使用内联样式 (4)四、使用setStyle()方法 (4)五、脚本方法 (5)Application组件样式属性 (5)panel组件样式属性 (5)color文本颜色 (7)TabNavigator组件样式属性 (7)color主体内容的文本颜色 (9)color标签头文字的颜色 (11)LinkBar组件样式属性 (12)color链接文字颜色 (13)List组件样式属性 (15)color文字颜色 (18)Tree组件样式属性 (18)color文本颜色 (19)TextInput组件样式属性 (19)borderColor边框颜色 (20)CheckBox组件样式属性(包含单选和多选) (23)在FLEX中使用样式方法一.使用本地样式定义使用<mx:Style>标签在MXML文件中创建本地的样式定义。
这个标签包含了符合CSS2.0语法的样式表定义。
这些定义会应用到当前文档以及当前文档的子文档。
<mx:style>.solidBorder{//类选择样式border-style:solid;}button{//组件定义样式border-style:solid;}....</mx:style>//应用到组件<mx:VBoxstyleName="solidBorder"/><mx:button/>//文档中的button自动应用样式表中的样式二、使用外部样式表FLEX支持外部CSS样式表。
要应用一个样式表到当前文档和子文档,使用<mx:Style>标签中的source属性。
<mx:Application...><mx:Stylesource="style/style.css"/>//载入外部样式表...</mx:Application>style.css文件中的样式表定义与本地样式定义相同。
Flex 培训大纲1、简介2、AS3语言基础与JSON格式3、简单组件的编写(常用组件)4、复合组件的编写与打包swc5、Css的设置与动画6、前后台传输7、sprite图形绘图8、一些小经验/开发规范一、简介Flex 通常是指Adobe Flex,是最初由Macromedia公司在2004年3月发布的,基于其专有的Macromedia Flash平台,它涵盖了支持RIA的开发和部署的一系列技术组合。
现在flex使用的脚本是ActionScript3.0,并且建立起类似于java swing的类库和相应的UI 组件。
Flex是通过java或者.net等非Flash方法,解释.mxml文件生成相应的.swf文件。
Flex 的组件和flash的组件很相似,但是有所改进增强。
目前Macromedia公司已经被ADOBE(奥多比)收购。
当前的最新版本为flex4,常用版本为flex3,flex4目前中文资料很少,了解的还不深入,所以目前还用flex3。
运用flash是完全可以做到flex效果的,相应的,flex也可完成flash的功能特效,它们在底层是相通的,只是开发工具与开发标准的不同,都被解释为As来运行(个人观点),所以我认为flex在效果上达的的目标是实现flash的各种功能的同时还可快速的组件式开发。
它能更好的为用户一种不同与html+js的交互方式,得到较好的用户体验。
AIR 是flex基础上的桌面应用,它可以开发出脱离浏览器之外的桌面应用,与本地数据库交互,操作本地文件,调用exe文件,从而调用dll(动态链接库)文件等操作。
LCDS:Flex和Java通信,一般来说使用LCDS(LiveCycle Data Service),不过这个是收费的,所以就用免费的BlazeDS代替。
BlazeDS是官方从LCDS中分离出来的开源数据服务中间件。
为什么来说一般来说是用LCDS,也就是说不一定非要用LCDS,因为LCDS提供的功能完全可以自己实现,而且除了RemoteObject方式,还有WebService、HTTPService等等。
FLEX 中文手册一些简单的例子 输入文件的格式 模式 如何匹配输入 动作 生成的扫描器 开始条件 文件结尾规则 与 yacc 一起使用一、一些简单的例子首先给出一些简单的例子,来了解一下如何使用 flex。
下面的 flex 输入所定 义的扫描器,用来将所有的“ username”字符串替换为用户的登陆名字: %% username printf("%s", getlogin()); 默认情况下,flex 扫描器无法匹配的所有文本将被复制到输出,所以该扫描 器的实际效果是将输入文件 复制到输出,并对每一个“username”进行展开。
在这个例子中,只有一个规 则。
“username”是模式 (pattern),“printf”是动作(action)。
“%%”标志着规则的开始。
这里是另一个简单的例子:int num_lines = 0, num_chars = 0;%% \n ++num_lines; ++num_chars; . ++num_chars; %% int main(void){ yylex(); printf("# of lines = %d, # of chars = %d\n", num_lines, num_chars); }该扫描器计算输入的字符个数和行数(除了最后的计数报告,并未产生其它 输出)。
第一行声明了两 个全局变量,“num_lines”和“num_chars”,可以在 yylex()函数中和第二个 “%%”后面声明的 main()函数中 使用。
有两个规则,一个是匹配换行符(“\n”)并增加行数和字符数,另一个 是匹配所有不是换行符的 其它字符(由正规表达式“.”表示)。
一个稍微复杂点的例子: /* scanner for a toy Pascal-like language */ %{/* need this for the call to atof() below */ #include <math.h>%} DIGIT [0-9] ID [a-z][a-z0-9]* %%{DIGIT}+ {printf( "An integer: %s (%d)\n", yytext, atoi( yytext ) ); }{DIGIT}+"."{DIGIT}* {printf( "A float: %s (%g)\n", yytext, atof( yytext ) ); }if|then|begin|end|procedure|function {printf( "A keyword: %s\n", yytext ); }{ID} printf( "An identifier: %s\n", yytext ); "+"|"-"|"*"|"/" printf( "An operator: %s\n", yytext ); "{"[^}\n]*"}" /* eat up one-line comments */ [ \t\n]+ /* eat up whitespace */ . printf( "Unrecognized character: %s\n", yytext ); %% int main(int argc, char **argv){ ++argv, --argc; /* skip over program name */ if ( argc > 0 ) yyin = fopen( argv[0], "r" ); else yyin = stdin; yylex(); }这是一个类似 Pascal 语言的简单扫描器的初始部分, 用来识别不同类型的标 志(tokens)并给出报告。
序任何人写书时都会遇到麻烦,我在编写本书时遇到的麻烦则格外多。
具体来讲,本书诞生于2008年年底,当时我同时遭遇了三重打击:Ruboss框架没能作为商业产品;Enterprise Flexible Rails终未成书;Hello! Flex 3的版式失败。
用嘻哈巨星弗里德里希·尼采(Friedrich Nietzsche)的话说:"只要没杀死我们,就会让我们变得更坚强。
" 2008年年底这场失败风暴绝对让我变得更坚强,甚至也让本书变得更好。
上面只是简略的描述,如果你想知道得更多,请继续往下看……就在Manning出版公司于2008年年初出版Flexible Rails一书不久,我开始在自己的公司Ruboss全职工作,并招募了合作创始人Dima Berastau。
我们一边做咨询,一边启动了一个产品,即Ruboss框架。
Ruboss框架使用GPL v3许可和一个商业许可,所以它的Flex版本免费,AIR版卖499美元。
我想通过写书来推销Ruboss框架,所以我与Manning出版公司的Mike Stephens探讨为Flexible Rails写本姊妹篇,书名就叫Enterprise Flexible Rails,这本书将延续Flexible Rails,带领读者使用Ruboss框架来开发他们的Flex项目。
在我同时开发Ruboss框架和撰写Enterprise Flexible Rails期间,2008年年初Mike找到我,让我推荐一个人来为Manning出版公司写Hello! Flex 3。
该出版商新开发了一个系列,名为"Hello! X"。
这个系列希望采用明快有趣的形式介绍某个主题,并配上漫画插图。
我想都没想就说:"我推荐我自己。
"我认识J. D. Frazer(即Illiad,网络漫画User Friendly的作者),所以我建议Manning出版公司在"Hello!"系列中使用User Friendly漫画,然后我为他们作了介绍。
Flex入门教程编写日期:2009-02作者:Dason 主要讲3个主题:1.Flex是什么,用途和前景;2.Flex Builder基础;3.MXML基础;现在进入第1个主题:首先我们要明白,flex不是专门用来做网页的,它主要是用来做RIAs的RIAs=Rich Internet Applications富英特网应用程序Flex现在虽然是2.0,以前是1.0和1.5,但是不要担心1.0和1.5版本自己没有用过,因为2.0版本才是Flex真正的开始,首先,Flex2.0的技术基础很高,采用Action Script3.0为编程核心,以FlashPlayer9.0为平台它与以前版本的区别是FlashPlayer9.0采用全新的虚拟机,运行速度是8.0的10倍以上Flash8.0和Flex1.0,1.5,都是Action Script2.0用的FlashPlayer8.0,在性能上,跟Flex2.0的Action Script3.0和FlashPlayer9.0相差太远了我们现在处于RIAs浏览器时代,意思是,我们用Flex做的程序,必须要用浏览器打开,以网页的形式发布,明年,我们将步入下一个RIAs时代――桌面RIAs时代,我们现在所有用flex2.0做的程序,明年都可以被重新发布成桌面应用程序,就跟我们现在用的软件是一样了,到时候,我们的程序不再被浏览器限制了,flex能做的程序很多,比如QQ这样的即时聊天软件、论坛、股票软件、网络视频聊天、等等。
你能想到的基本都能做出来,Flex的前景是一片明朗的,而且越往后越会被广泛采用,这一切都从Flex2.0开始,所以,对于我们来说,这是个前所未有的好机会。
现在学flex的人很少很少,如果你等到他已经大面积普及,那就没有竞争力了。
好,现在提问时间,马上要进入下一主题:Flex是纯面向对象语言,C是面向过程语言,ActionScript3.0相对2.0,改动太大了,如果有2.0基础,对3.0帮助不大,所以,如果你第一次接触的就是3.0,也不要紧,3.0删除了很多2.0的东西,而且增加了很多新类,3.0跟JAVA基本没什么区别了,所以,有JAVA基础的人,学起来更快。
AS3的语法跟JAVA一样,有库、包、类、接口这些概念,两者的本质区别是java可以做软件,但局限性很大,比如java界面很差,很多功能比较古老等等今天第2个主题――Flex Builder2基础1、打开Flex Builder2A.新建Flex Project-我来讲讲这3个选项的用途:I)Basic是基本Flex项目,你要获取数据的话,必须靠自己写外部的PHP或者JSP脚本来实现II)Coldfusion这个是用Coldfusion服务器来给Flex程序提供数据,一般都不用这个,Coldfusion在中国没什么发展III)Flex Data Service则是Flex自己的一套完整的后台系统,他可以动态编译MXML 文件成SWF,Flex Data Service这个以后再讲,现在大致了解一下即可B.选中Basic,然后点Next,按照我这个图里来填好了就点Next4个输入栏:第一个是填你源代码目录,写source;第2个是你主应用程序文件名,默认;第三个是你应用程序做好以后的输出目录;第4个是输出url,不用写,一般不用它。
做好了的应用程序会放到bin目录里。
填好以后按finish完成解释一下这个目录结构,从上往下:首先Lesson1是你项目的名称bin里面专门放你做好的程序文件html-template是放html模板的source专门放源代码这里我解释一下html-template这个目录里东西的用途,这个目录放的全部是html模板和js 脚本,他们的作用是把生成的应用程序SWF文件包裹在一个HTML文件中,然后用户只要访问这个HTML文件,就等于访问了应用程序SWF文件。
html-template包含了重要功能:1.它里面的代码能自动检测访问者的Flashplaye r版本,如果版本太低,则自动提示安装2.能让swf控件免激活。
一般的网页里的swf都要点一下之后才能访问,也就是要激活3.历史记忆功能,可以让你的Flex应用程序拥有浏览器中的后退和前进功能。
这个是Flash 做的程序里一直没有的好,现在在Lesson1的图标上点右键,选择最下面一项-Properties,点Flex Compiler我简单说一下这里的选项作用:看到9.0.0吗,这是自动检测flashplayer版本的(现在最新版本是9.0.28)大家可以改成9.0.28,这样用户访问的时候就会提示更新flashplayer版本。
注意,版本一定不要低于9.0.0,因为flashplayer8.0是无法也不可能运行Flex程序的。
->好了,现在讲主界面在主要页面,分Source和Design,Source是专门写代码的,Design是视图面板,你写的代码可以在Design模式下看到实体,现在打开Design,好,我们看到现在舞台上什么都没有,请看左边Components面板,我们可以把Components,也就是组件面板里的东西拖到舞台上Componets面板中:Custom是放你自定义组件的;Controls是放控件的,用户可以直接与之交互;底下还有Layout,它是放容器的,简单讲,我们应该把所有控件都放到合适的容器里,否则程序做出来就杂乱无章;Navigators里面放的是导航组件,比如菜单组件等;Charts里面是图表,用他可以做出很多漂亮的统计图;现在我们先看Controls:先拖个Button组件到舞台,鼠标直接拖到中间的舞台里好,现在看右边的Flex Properties面板可以看到这个Button组件的常用属性都在上面了,ID里写这个Button组件的引用名称,Label 是他的显示标签,大家可以把Label随便改成其他名字,你们会看到Label更改以后,舞台上的Button标签马上变化了,Icon是用来改Button图标的,Enabled是指是否允许使用Button 组件,如果写成false,组改Button组件不可被用户点击(问:有个问题,label placement属性里,我的理解是选择label的放在按钮里的排版靠左等等,不过我选了没有什么区别。
答:哦,只有在你先定义了icon图标以后,label placement才会生效)这里是改Button的常用样式比如字体,字号,颜色,透明度,边线宽度,背景色等等当我们更改这个面板里任何一个属性的时候,我们观察一下Source模式,可以看到,Source模式下,代码立即被更新这里面是调整button的宽和高,x,y坐标,以及布局约束(哦,对了,布局约束,永远只能是控件相对于容器边缘,而不能是控件相对于控件边缘)。
这里我简单教大家用用布局约束Constraints,请看图:如图所示,这样设置的话,Button组件就会永远相对与舞台边缘距离10像素位置。
不论用户怎么更改浏览器大小,它都会保持与左边10像素距离,如果是这样的话,Button会一直保持在屏幕左下角的位置距离下边和左边10像素好,现在我来讲讲相对和绝对:这样的设置,button宽60高50,这样的数值是绝对的,也就是说,你屏幕不论分辨率多的多大,宽高依然是60和50,很多时候这满足不了我们的需求,所以我们有时把它设置相对值:改成百分号的,把宽和高改成百分号以后,大小就相对于屏幕的x%,这样就有很大的可伸缩性。
一般对于按钮不需要,主要是对于容器很有用现在点这里,这个很重要请把里面默认的数值删除掉,点Remove擅长删除,然后添加我图上的这2对数值。
1012*600是在1024*768下,IE7.0中的最大尺寸,我们以后做程序,都要以这个尺寸为主(问:不设置不可以吗?答:必须设置,不设置的话,你所有的组件会全部挤到一堆,而且输出结果给你预想的会完全不一样,1012*600最好)好,现在请把button的宽高删除掉,变成默认大小,现在我们从layout中拖个容器出来,拖个panel吧,我们把Button拖到Panel里放着先我们把Panel简单设置一下再看看Design下的效果注意,在这里提供的选项并不是一个组件全部的选项,全部选项在这里Catagory View里Common里是常用选项;Effects里是效果;Events 里是事件;还有,比较重要的是Styles里,Styles里是一个组件的所有样式:可以看看,Style里改了这些设置以后,Panel面板样式发生了很多变化:好,现在看看怎么编译程序:每次点下保存按钮以后,不仅代码全部被保存,而且直接被编译成swf了,不需要手动编译刚刚保存以后,swf文件就已经被输出到bin目录里了history.htm+history.swf+history.js负责程序的后退前进功能playerProductInstall.swf负责在线安装flashplayerLesson1.html+Lesson1.swf是你主程序最重要的部件Lesson1-debug.html+Lesson1-debug.swf是调式程序文件AC_OETags.js负责让你的swf在网页里显示的时候免激活当你发布一个程序的时候,最少你得要Lesson1.swf。
一般的情况下,除了Lesson1-debug.html+Lesson1-debug.swf不要以外,其他全部都需要。
也就是把bin中除了Lesson1-debug.html+Lesson1-debug.swf以外,其他所有文件都上传到你的网站某个文件夹里。
好,要测试你的程序:有很多方法,比如标准方法是点这个按钮点了之后,浏览器自动打开,即可测试再告诉大家一个实用的:Project---Clean有时候,你导入的外部文件可能会识别错误,这个时候就点Project---Clean,它非常有用,可以理顺代码和不正确的连接,同时保存和编译程序好,再告诉大家2个东西就进入下一主题了如图,好现在进source模式,把光标放到Panel上面,这个时候,点这个(或者直接按F3),这样可以看到Panel的源代码,Flex 大部分源代码都是公开的。
不过,不要试图修改这些代码,flex会产生错误,这些代表只帮助学习代码,接着,还是把光标放panel上点左下角的帮助按牛这里会出现关于panel的动态帮助,非常有用,查语言参考和教程好了,现在进入今天最后一个主题:MXML基础从这里开始就是关键了<?xml version="1.0"encoding="utf-8"?><mx:Application xmlns:mx="/2006/mxml"layout="absolute"> <mx:Panel x="74"y="148"width="250"height="200"layout="absolute"title="panel"> <mx:Button x="10"y="23"label="Button"/></mx:Panel></mx:Application>我来简化一下<?xml version="1.0"encoding="utf-8"?><mx:Application xmlns:mx="/2006/mxml"layout="absolute"> <mx:Panel title="panel"><mx:Button label="Button"/></mx:Panel></mx:Application>好,一行一行的说:1.<?xml version="1.0"encoding="utf-8"?>是文档类型定义MXML也是xml,所以它同样需要这个定义,这句代表xml版本是1.0,以utf-8编码2.<mx:Application xmlns:mx="/2006/mxml"layout="absolute">在每个Flex应用程序当中mx:Application都是顶级容器,一个MXML文件里,只能有一个<mx:Application>标签3.xmlns:mx="/2006/mxml"这个是命名空间,预习了xml的人应该都看得懂4.layout="absolute"这代表目前是绝对布局,只有在绝对布局下才能用布局约束<mx:Panel title="panel"><mx:Button label="Button"/></mx:Panel><mx:Application>中可以有很多这样的子标签;可以有子容器,子控件等等。