MXML简介
Flex技术基础培训
方腾飞 Main_shorttime@
什么是FLEX?
是Adobe公司推出的一系列框架和技术,使开发人员 可以开发和部署RIA程序(flash程序)。 是用于构建和维护在所有主要浏览器、桌面和操作系 统一致地部署的极具表现力的 Web 应用程序的高效 率的开放源码框架。
HELLO WORLD ACTIONSCRIPT
可以通过标签加入到Mxml文件里。 <mx:Script> <![CDATA[ import mx.controls.Alert; private function helloWorld():void { Alert.show("hello world!"); } ]]> </mx:Script> 可以引用外部的Script,只是将代码块抽出去。 <mx:Script source="">
}
特有语法
动态类的作用是在程序运行的时候,可以动态增加或 者修改类的属性。用关键字dynamic来标识。 Public dynamic class NotebookExample; Is用于判断变量类型是否一致,类似于Java的 instance of。 A is String; Dictionary类似于java中的map。 Public var users: Dictionary ; 访问器和设置器,get 和 set。 Public function set userId(userId:String); 其他的语法基本和java差不多,如int, String,Array,extends,static,void。
FLEX的原理
MXML Action Script SWF
flex3基础知识
Flex3基础知识菜花目录Flex3基础知识 (1)介绍、编译: (1)第一部分:AS3基本语法 (3)基本数据类型 (3)数组:复杂数据类型,有序的数据集合。
(3)String类型 (6)函数 (6)变量 (6)类 (6)接口(与Java相似) (7)继承(与Java相似) (7)第二部分:事件 (7)事件机制 (7)第三部分:容器与组件 (10)容器定位与布局: (10)导航容器: (11)第四部分:数据绑定 (11)第五部分:验证 (12)第六部分:控制管理 (12)第七部分:外部数据交互 (16)第八部分:Flash Player的安全机制 (17)第九部分:工具 (17)第十部分:数据模型 (19)第十一部分:样式与皮肤 (20)第十二部分:高级组件开发 (20)第十三部分:实例 (20)介绍、编译:Flex=ActionScript+mxml;Mxml基于xml之上的实现,与jsp和servelt相似,jsp首先会被容器先转换成servlet文件;同样,mxml文件也会先被转换成ActionScript文件,再进行加载。
Mxml的方式与html相似。
ActionScript类似Java,为面向对象语言,ActionScript 的核心底层遵循ECMA-262标准协议,与javascript一致。
Mxml文件会被转换为两个文件:一是mxml文件有部分转换成ActionScript脚本。
二是mxml文件按文件名被转换成对应名称的AS类。
Flex工程src目录下的文件也会编译到swf文件中,还有flex的架包。
第一部分:AS3基本语法基本数据类型1.Boolean2.Int3.Null:只有一个值null,是String和复杂类型(包括Object类)的默认值。
4.Number:最大值Number.MAX_VALUE和最小值Number.MIN_VALUE。
5.String:16位字符序列,内部存储为Unicode字符,使用UTF-16格式。
关于MXL
XML 简介• •Previous Page Next Page XML 被设计用来传输和存储数据。
被设计用来传输和存储数据。
HTML 被设计用来显示数据。
被设计用来显示数据。
应该掌握的基础知识: 应该掌握的基础知识:在您继续学习之前,需要对以下知识有基本的了解:• HTML / XHTML • JavaScript如果您希望首先学习这些项目,请在我们的 首页 访问这些教程。
什么是 XML?• XML 指可扩展标记语言(EXtensible Markup Language) • XML 是一种标记语言 标记语言,很类似 HTML 标记语言 • XML 的设计宗旨是传输数据 传输数据,而非显示数据 传输数据 • XML 标签没有被预定义。
您需要自行定义标签 自行定义标签。
自行定义标签 • XML 被设计为具有自我描述性 自我描述性。
自我描述性 • XML 是 W3C 的推荐标准XML 与 HTML 的主要差异XML 不是 HTML 的替代。
XML 和 HTML 为不同的目的而设计:XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而 XML 旨在传输信息。
没有任何行为的 XMLXML 是不作为的。
是不作为的。
也许这有点难以理解,但是 XML 不会做任何事情。
XML 被设计用来结构化、存储以及传输信息。
下面是 John 写给 George 的便签,存储为 XML:<note><to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>这个标签有标题以及留言。
Flex讲解
Flex事件机制(二) 事件机制( 事件机制
Event类作为创建Event对象的基类,当发生事件时,Event对象将作为参数传递 给事件侦听器。如MouseEvent、KeyboardEvent • Event类有几个常用的公共属性: ◆是否冒泡:bubbles; ◆目标对象:target; ◆所处阶段:eventPhase; ◆当前对象:currentTarget; Flex事件机制中的自定义事件,也就是向监听器传递自己定义的事件类型,同 时可以通过事件传递参数。 • 1.创建自定义事件名称的Event dispatchEvent(newEvent(“myEvnet”,true,false)); • 2.创建自定义事件类 Public class MyEvent extends Event{ dispatchEvent是EventDispatcher的方法: publicfunctiondispatchEvent(event:Event):Boolean将事件调度到事件流中。事件 目标是对其调用dispatchEvent()方法的EventDispatcher对象。 •
控件简介(二)
• • • • • • • • • • • • • • • • • • • 5:flex控件: 警告alert弹出警告框 下拉列表combobox下拉数据列表 选色器colorpicker可选择的调色盘 数据表格datagrid 数据表格 日期选择器datechooser选择日期控件 日期条 datefield 单击弹出日期选择器 水平列表horizontalList 水平列表项目 水平尺/垂直尺 hrule vrule单个水平或垂直标尺 水平、垂直滑竿 hslider,vslider 图像 image 支持gif jpeg png svg swf 列表list 可滚动的数据组 计数器numericstepper单击向上的按钮增加数据,单击向下的按钮减少数据 进度条progressbar 当前操作进度 滚动条 水平,垂直滚动 scrllbar,hscrollbar,vscrollbar swf加载器 显示swf文件 列表条tabbar一组水平的列表 排列列表tilelist类似表格的行列对正排列的项目 树tree、以展开树的方式显示继承关系的数据 音像videodisplay flex应用中的数据流媒体
ActionScript——FlashBuilder概述及MXML简介
<fx:Script> <![CDATA[ import mx.controls.Alert; protected function show():void { Alert.show("你好!欢迎使用 Flash Builder!","消息框"); } protected function button1_clickHandler( event:MouseEvent):void { show(); } ]]> </fx:Script>
属性
• 属性以小写字母开头,大小写混合。属性 必须包含在引号内。 <ComboBox id="myCombo"/> • 除了click或initialize之类的事件属性外,其他属性都被 编译器作为文本字符串处理。如果需要绑定数据或者强迫编 译器执行表达式,可以将变量的部分用花括号括起来。 <ComboBox dataProvider="{myArray}"/> • 大部分的属性都可以作为子标签。如, <ComboBox dataProvider="{myArray}"/> 等效代码如下。 <ComboBox> <dataProvider>{myArray}</dataProvider> </ComboBox>
XML入门
显示 HTML
要显示 HTML,浏览器只需遵循 HTML 文 档中的指令即可。段标记告诉浏览器在新 的一行显示,并且通常在前面有一个空行, 而两个换行标记则告诉浏览器前进到下一 行,并且行之间没有空行。尽管浏览器出 色地将文档格式化,但机器仍不知道这是 地址。
样本 XML 文档
现在让我们来看一个样本 XML 文档。使 用 XML,您可以给文档中的标记赋予某种 含意。更重要的是,机器也容易处理这样 的信息。您只需通过找到 <postal-code> 和 </postal-code> 标记之间的内容(技术 上称为 <postal-code> 元素),就可以从 该文档抽取邮政编码。
名称空间定义中的字符串仅仅是字符串。对,这些字符串看似 URL, 其实不是。您可以定义 xmlns:addr="mike",那也是有效的。名称空 间唯一的重要性在于其唯一性;这就是为什么大多数名称空间定义 看起来象 URL 的原因。XML 解析器不会到 /books/ 去搜索 DTD 或模式,它只是把那个文 本作为字符串使用。这有些令人困惑,但名称空间就是这样工作的。
我们为什么需要 XML
HTML 始终是最成功的标记语言。您几乎可以在任何设备(从掌上 电脑到大型机)上查看最简单的 HTML 标记,并且您甚至可以用合 适的工具将 HTML 标记转换成语音和其它格式。既然 HTML 成功 了,为什么 W3C 还要创建 XML 呢?为了回答这个问题,请查看下 面这个文档: <p><b>Mrs. Mary McGoon</b> <br> 1401 Main Street <br> Anytown, NC 34829</p> HTML 的问题在于它是为人设 计的。即使不用浏览器查看上面的 HTML 文档,您和我也会知道那 是某个人的邮政地址。(具体而言,它是美国某个人的邮政地址; 即使您一点也不熟悉美国邮政地址的格式,您可能也会猜出这表示 什么。) 作为人,您和我具有理解大多数文档的含义和意图的智慧。遗憾的 是机器不能做到。尽管这个文档中的标记告诉浏览器如何显示该信 息,但标记没有告诉浏览器信息是什么。您和我知道它是一个地址, 但机器不知道。
基于Flex的电子商务网站框架设计与实现
基于Flex的电子商务网站框架设计与实现摘要:该文针对电子商务这样典型的以数据为中心,存在大量用户的系统,为了丰富用户体验、提高互动性,提出了基于Flex+J2EE 框架下的电子商务网站的设计方案与实现方法。
该方案提升了电子商务系统的开发与维护效率,为现有遗留系统引入RIA框架提供了可靠方案。
关键字:RIA Flex 电子商务框架随着电子商务规模的不断扩大,电子商务网站建设的优劣直接影响电子商务的效果。
传统的Web电子商务网站一般都采用页面表现内容、由服务器端传递数据的开发模式。
其客户端是浏览器,主要是靠服务器端程序来处理相关业务程序,这种模式易于管理,安全性高,而且硬件花费较少,但同时也存在着缺乏灵活性、服务器端遇到网络带宽问题、应用程序缺乏丰富的用户界面及高效的多媒体处理性能等缺点。
因此,为了满足用户更高的、更全方位的使用体验要求,就需要功能更加强大的表示层。
于是,被称为富互联网应用(简称RIA)的、具有丰富用户体验和高度互动性的网络应用模式应运而生。
1 Flex技术简介Flex技术由MXML、ActionScript及Flex类库三部分组成。
MXML 是用来描述Flex程序视图部分的基于XML的标记语言,主要用来呈现Flex的用户界面,也包括一些不可见元素,例如数据绑定、访问数据源等。
ActionScript是一种基于ECMAScript的面向对象编程语言,主要负责实现和控制客户端程序逻辑。
Flex还提供了一个丰富的类库,包括了各种Flex容器和控件、行为组件、数据绑定组件及其他功能组件[1]。
这些组件作为辅助,来加快整个开发的进程。
2 电子商务网站功能设计基于Flex技术开发的电子商务网站,彻底改变了以往的交互过程,让顾客可以个性化地配置所选商品,并即时得到商品的最终效果,让顾客的购物过程更方便更快捷,极大的改善了顾客的购物体验。
2.1 需求分析对于电子商务这样的数据流量较大的数据库管理系统类网络管理系统,必须做到使用方便、操作灵活等设计要求。
MiniXML中文文档
Mini-XML 入门这一章描述了如何写一个程序使用Mini-XML来访问XML文件中的数据.Mini-XML提供了以下功能:∙在内存中创建和管理XML文档的函数.∙读UTF-8和UTF-16 编码的XML文件和字符串.∙写UTF-8 编码的XML文件和字符串.∙支持任意的元素名称,属性以及属性值,没有任何其他限制,仅受限于有效内存.∙支持整形、浮点、自定义("CDA TA")和文本数据类型在"叶"节点.∙提供"查找"、"索引"、以及"步进"函数可以很简单的访问XML文档中的数据.Mini-XML 不进行基于"XML方案(SCHEMA)"文件或者其他内容源定义信息的校验和其他类型的处理,也不支持其他组织所要求的XML规范.基础知识Mini-XML 提供的一个你需要包含的头文件:#include <mxml.h>把Mini-XML库连接到你的应用程序使用-lmxml 选项:gcc -o myprogram myprogram.c -lmxml ENTER如果你已经安装pkg-config(1) 软件, 你可以使用它来为你的安装确定适当的编译和连接选项:pkg-config --cflags mxml ENTERpkg-config --libs mxml ENTER节点每一块XML文件中的信息片断(元素、文本、数字)是一个存储在内存中的"节点(nodes)" .节点使用mxml_node_t结构进行定义. 它的type成员变量定义了节点类型(element, integer, opaque, real, or text) 决定了需要从联合(union)类型的成员变量value中获取的值.表2-1:类型节点成员Mini-XML 节点值的成员变量值用户定义void * node->value.custom.dataXML元素char * node->整数int node->value.integer不透明字符串char * node->value.opaque浮点数double node->value.real文本char * node->value.text.string译者:节点类型定义枚举参见:mxml_type_e。
flex4基础
flex4mxml文件就是.MXML的xml文件actionscript文件.as 编写代码编译成swf文件flex4 应用程序需要使用flash builder4的软件来创建flash catalyst事件数据绑定1、基础知识介绍1.1、了解fl ex和flash平台开发工具—flash builder开源框架---flex内嵌组件扩展组件语言---ActionScript3.0类库(符合ECMA标准的脚本语言,主要用来实现业务逻辑)语言---MXML(基于XML的描述式语言,主要用来描述UI布局的)Flex SDKFlex框架软件开发包---编译器---调试器Flash Builer开发工具Flex SDK所有的功能提供一些额外的特性提高生产力---上下文的代码提示---一个可交互的逐步调试器---一个可视化的设计环境(布局和样式)---连接到服务器端数据的数据服务向导---内存和性能检测---自动测试支持及更多的特性Flash Builder版本:---标准版---增强版:致力用创建关键业务应用,包含了标准版所有特性,并添加了一些企业及的特性在里面,包括内存和性能检测以及自动测试。
增强版的数据可视化支持你创建图表和丰富的可视化面板。
1.2、了解flash Bulid er 和flex项目默认的工作空间位于:Document and settings→user directory→adobe flash builer beta2.metadata和configuration目录包含了flash builder工作空间的设置。
默认情况下,flash builder会把我的flex应用程序编译到我的项目文件夹下面的一个名为“bin-debug”的目录下。
源文件将会保存在项目目录中的“src”目录下。
组件设置:MX+Spark(同时使用两个库)MX only(这个mx库比较老)修改编辑器中的字体大小:General→Appearance→Colors and fonts→basic→text font改变代码间距:Flash builder→indentation→actionscript.并且取消方法中的对齐参数。
Flex培训
24
Content 内容
Flex简介 Flex示例 Flex与J2EE应用结合 常见问题的解决方案 Flex开发框架
Inspur group 2012-2-28
25
Flex与J2EE的结合:新建项目时 Flex与J2EE的结合: 的结合
选择J2EE型的应用服务类型
26
Flex与J2EE的结合:新建项目时 Flex与J2EE的结合: 的结合
编辑应用服务地址,引用url,上下文
编辑完了要点击检验正确性
27
Flex嵌入html,jsp Flex嵌入html, 嵌入html
参照你应用下的bin目录下的html文件
28
Flex嵌入html,jsp Flex嵌入html, 嵌入html
29
在Flex里访问传入的参数 Flex里访问传入的参数
11
Flex的优势五:自动解析xml文件 Flex的优势五:自动解析xml文件 的优势五 xml
Flex中的Actionscrip包含了针对XML的Ecmascript或者 叫做E4X。它通过把XML看作一个原始变量使得操作一个 XML对象变得简单。 Xml对象及其子元素还可以直接作为Tree,DataGrid对象 的数据集,直接以图形化的方式进行展现。
<?xml version="1.0" encoding="utf8"?> <mx:Application xmlns:mx="/20 06/mxml" layout="absolute"> <mx:Button id="btn" lab el=" 确定"/> </mx:Application>
Flex技术简介
MXML是对XML的扩展,基于W3C DOM3的子 集规格来实现事件模型。可用CSS1(层叠样式表) 来实现样式。Flex3.0中使用ActionScript语言。 ActionScript是欧洲计算机制造商协会(ECMA)制 定的标准脚本语言,用以支持基于对象的开发。
Flex的技术特点
Adobe公司主要产品
Adobe Photoshop
1990年推出数字影像编辑和创作的行业标准,Photoshop数字影像系 列产品的领袖。
Adobe Premiere Pro
1991年推出数字图像和音频编辑软件,功能强大、图形逼真、支持 实时操作。
Adobe After Effects
1993年推出数字视频创作行业中不可缺少的动画和视觉效果工具。
Flex的技术特点
2.完善的开发环境
Flex是用来创建和发布企业级的、通过网络的富互联 网应用程序(RIA)的强大的应用程序开发方案。Flex提供 了现代的标准的语言和程序模型。支持公共设计模板,包 括集成开发环境(IDE)产品。Flex Build是开发Flex的利器, 由Eclipse团队开发,开发环境与Eclipse相似。
Flex4的十大变化
4.对View States的改进 Flex 2将状态(states)概念引入到了Flex框架中,这样
我们就可以通过简单的状态改变来管理视图组件的变化。 Flex 4改进了视图状态(view states)以简化其语法,这样我 们就能更轻松地使用他们了。新语言属性includeIn和 excludeFrom就是简化语法的一个例子,我们可以设定组件 的这两个属性值以响应状态变化
最早的RIA应用程序大多由Flash开发工具制作。RIA程 序的效果非常理想,且可运行于不同平台中,但Flash工具 的特点决定了它不适合开发大中型RIA程序。其一,Flash 工具是专业拥有制作动画的开发平台,适合于开发时间逻 辑较强的程序。其二,Flash工具倡导DIY精神,只提供最 基础的组件,所以几乎所有的任务都要自己完成。
Flex3
MXML●MXML是区分大小写的语言。
●MXML是XML语言,第一行代码必须包含文档声明。
●xmlns:mx 定义了Flex的命名空间,其值是URI,即统一资源标示符。
容器●Vbox:垂直排列●Hbox:水平排列●Canvas:绝对坐标(x,y)●Application:主应用程序标签,其实质是一个容器,通过layout属性(vertical horizontal或absolute)能被设置成Vbox,Hbox或Canvas任意方式。
●Panel:通过layout属性(vertical horizontal或absolute)能被设置成Vbox,Hbox或Canvas任意方式。
同时提供标题栏区域,可以包含标题和状态信息。
如:title="欢迎光临!" status ="Active"●ApplicationControlBar:该容器放置整个应用程序中都能访问的组件。
如果其是Application标签的第一个元素,且dock属性为true则该容器会停在应用程序顶部,占满应用程序的最大宽度,不随应用程序滚动。
能以Vbox,Hbox方式布局,依赖于direction属性(vertical horizontal)●ControlBar:该容器放置工具栏在Panel容器或TileWindow容器的底部。
能以Vbox,Hbox方式布局,依赖于direction属性(vertical horizontal)定位●基于父容器的约束条件布局在Flex Properties视图Layout部分Constraints区域进行控制。
亦可直接代码控制。
●基于ConstraintRow和ConstraintColumn的增强型约束条件布局只可直接代码控制。
用ConstraintRow分割容器的行(id和height属性)用ConstraintColumn分割容器的列(id和width属性)如:<mx: ConstraintRows><mx: ConstraintRow id=”col1” height=”20”/><mx: ConstraintRow id=”col2” height=”100%”/></mx: ConstraintRows>left=”5”相对于父容器top=”col1:10”相对于ConstraintRow id=”col1”●约束条件的前提是使用绝对定位,即Application的layout属性为absolute●通过控件的left,right,top,bottom属性进行定位。
MXML 语法
MXML 语法MXML 是Adobe Flex™应用中一种用于展示用户界面组件的XML 语言。
主题∙MXML基本语法∙设置组件属性MXML 基本语法大多数MXML标签相当于ActionScript 3.0的类或者类属性。
Flex解析MXML标签,并将其编译成一个包含对应ActionScript对象的SWF文件。
ActionScript 3.0 使用的语法基于 ECMAScript语言规范草案(第4版)。
ActionScript 3.0 包含下列特性:∙正式的类定义语法∙正式的包结构∙键入变量、参数和返回值(仅在编译期)∙隐含的getter和setter,使用get和set关键字∙继承∙公共和私有成员∙静态成员∙类型转换符关于ActionScript 3.0的更多信息,参见Using ActionScript。
MXML文件命名MXML文件名必须遵守下列命名约定:∙文件名必须是有效的ActionScript标识符,这意味着必须以字母或下划线(_)开头,其后只能包含字母、数字和下划线。
∙文件名不能和ActionScript类名、组件id值相同,或者单词是application。
不要使用和mx命名空间中MXML 标签名相匹配的文件名。
∙文件名必须以小写字母.mxml作为文件后缀。
表示ActionScript 类的标签使用对应于ActionScript类的MXML标签采用的命名约定和ActionScript类相同。
类名以大写字母开头,大写字母区分类名中的单词。
比如,当一个标签对应一个ActionScript类时,它的属性对应于该类的属性和事件。
设置组件属性MXML中组件属性使用的命名约定和对应的ActionScript属性相同。
属性名以小写字母开头,大写字母区分属性名中的单词。
大多数组件属性设置和标签属性一样,形式如下:<mx:Label width="50" height="25" text="Hello World"/>所有组件属性可以设置为子标签,形式如下:<mx:Label> <mx:width>50</mx:width> <mx:height>25</mx:height> <mx:text>Hello World</mx:text> </mx:Label>当设置属性值为一个复杂的Object时,通常可以使用子标签,因为不能指定一个复杂的Object作为标签属性值。
MXML语法
1. MXML语法MXML语言是专门用于Flex程序中,描述界面表现的一中XML标记语言。
我们可以用它来管理程序的整体布局,控制组件的样式和外观,也可以构建非可视化的对象,比如XML数据、与服务器端通信的WebService、组件的数据源等。
1.1 命名规范MXML区分大小写,且文件名和变量标示名都区分大小写。
MXML文件以mxml作为扩展名,文件名要遵循AS中变量的命名规则。
所有的MXML都被视为用户自定义的组件,相当于对象,可以使用代码动态创建。
变量名必须以字母或下划线开始,且只能包含字母、数字和下划线。
不能命名为application ,application 是主程序文件的默认标记,不可再使用。
程序不能使用“mx”做为目录名,mx 是官方组件库的命名空间。
2.2 MXML 文件结构MXML为标准的XML文件。
我们以一个MXML文件来说明:Xml代码1. <?xml version="1.0" encoding="utf-8"?>2. <mx:Application xmlns:mx="/2006/mxml" layout="absolute">3.4. <mx:Script>5. <![CDATA[6. internal function doClick():void{7. tip_txt.text='欢迎来到RIA的世界--开始Flex之旅';8. }9. ]]>10. </mx:Script>11.12. <mx:Button x="41" y="90" label="Hello Flex" click="doClick()"/>13. <mx:Label id="tip_txt" x="41" y="41" text="你好,Flex" fontSize="12"/>14. </mx:Application><?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="/2006/mxml" layout="absolute"><mx:Script><![CDATA[internal function doClick():void{tip_txt.text='欢迎来到RIA的世界--开始Flex之旅';}]]></mx:Script><mx:Button x="41" y="90" label="Hello Flex" click="doClick()"/><mx:Label id="tip_txt" x="41" y="41" text="你好,Flex" fontSize="12"/></mx:Application>第一行声明XML文件采用的语法版本version 和编码格式encoding(默认为utf-8)。
mxml 树形组织方式
mxml 树形组织方式MXML 树形组织方式是一种基于XML 的语言,它允许开发人员使用层次结构来组织数据和元素。
在MXML 中,可以使用XML 标记创建一个树形结构的组件层次,从而创建复杂的用户界面和交互应用程序。
举例来说,下面是一个MXML 树形组织方式的样例:<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="xmlns:s="library:ns.adobe/flex/spark"><s:VGroup><s:Label text="Name:"/><s:TextInput id="nameInput"/><s:Label text="Email:"/><s:TextInput id="emailInput"/><s:HGroup><s:Button label="Cancel"/><s:Button label="Submit"/></s:HGroup></s:VGroup></s:Application>在这个样例中,我们可以看到一个MXML 文件包含了一个根级容器元素`<s:Application>`,它是一个Adobe Flex 应用程序的基础。
这个容器元素中包括了一个纵向布局容器`<s:VGroup>`,它将所有子元素垂直地排列在一起。
而这些子元素包括了一些标签`<s:Label>`、输入文本框`<s:TextInput>` 和按钮`<s:Button>`。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用样式表
2.3.5 使用效果
适当的使用特效,如浮动提示和进度状态,有助于客户直观的了解当前内 容。在MXML中,可以通过设置效果达到这一目的。 下面例子使用了Flex特性库中的内建的特效,在这个例子中,当myView组 件显示时,使用WipeRight特效,而消失时则使用了WipeLeft特效。 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="/2006/mxml" layout="absolute" backgroundGradientColors="[#ffffff, #ffffff]"> <mx:View id="myView" width="100“ height="100" showEffect="WipeRight" hideEffect="WipeLeft"/> <mx:Hbox> <mx:Button label="显示" click="myView.visible=true"/> <mx:Button label="消失" click="myView.visible=false"/> </mx:HBox> </mx:Application>
2.1.1 什么是MXML
MXML基于XML,是用来描述用户界面的语言。MXML遵循W3C XML标准,所以也可以把MXML看作普通的XML文件。可以使 用任何的文本编辑器编写MXML。下面就是一个MXML的例子, 包含标签、属性、命名控件等。 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="/2006/mxml"> </mx:Application> 与HTML不同,MXML借助XML的规范拥有更强的结构,更少的 语法歧义。MXML还引入了更丰富的标签集,如:DataGrid、 Tree、TabNavigator、Accordion和Menu等。这些都是Flex 标签集中的一部分。还可以扩展MXML标签,创建自己的组 件。此外,二者最大的区别是,MXML定义的用户界面用 Flash播放器运行,相对传统的基于HTML、页面为中心的 Web应用而言,这将更具吸引力。
第2章 MXML
MXML是Flex应用程序用于进行用户界面组件布局 的语言。用户可以通过MXML来显式地定义应用程 序的非可视方面,例如访问服务器端数据源和用 户界面组件与数据源之间的数据绑定。本章主要 讲述MXML语法基础,以及在Flex如何使用MXML。
2.1 MXML简介
MXML是由Flex引入的,用来描述Flex应用程序界 面的语言。本节简要地介绍什么是MXML和MXML的 标准。
2.3.9 触发事件
Flex应用程序是基于事件驱动的,每一个组件都 有许多不同的事件和其对应,例如<mx:Button>有 click事件等。组件可触发的事件都可以将事件的 名称,作为组件标签的属性指定该事件发生的处 理方法。例如在按钮的组件标签<mx:Button>中定 义click属性,并为click属性指定处理方法,该 处理方法可在<mx:Script>内利用ActionScript定 义。 下面的例子中,在按钮控件对应的MXML标签内, 使用click属性定义了在单击按钮事件发生时处理 的方法,
2.3.4 <mx:Script>
MXML文件中直接插入ActionScript方法时要用到<mx:Script>标签, 具体语法如下。 <mx:Script> <![CDATA[ //插入ActionScript ]]> </mx:Script> 在这个标签里,需要注意的地方有如下几点: 标签要成对出现。 不能在标签内定义任何的类或者接口,因为本身当前的MXML文件 就是一个类,ActionScript并没有像Java一样支持内部类定义。 CDATA标签主要用来告诉编译器标签内的内容不要被解释成MXML语 法,而是ActionScript。 <mx:Script>标签必须定义在MXML文件根标签的层次,否则会出现 编译器错误。
2.3.1 定义界面组件
MXML提供了丰富的组件标签集。在MXML中可以利 用标签、属性定义Flex提供组件。组件在MXML都 有其对应的标签,以及定义该组件的相关属性。 例如:按钮控件对应<mx:Button>标签,按钮上显 示的文字在该标签的label属性中定义。使用组件 的时候,插入该组件组件对应的标签,定义该组 件相关属性即可。
使用数据验证
2.2.7 格式化数据
除了进行数据验证之外,还可以对输入的数据进 行格式化。与验证数据类似,可以使用Flex提供 的数据格式器对指定的数据进行格式化,在MXML 中定义相应的格式器即可。详细情况可以参考 Flex数据篇中“格式化数据”相关章节。 下面的例子对用户输入的电话号码进行格式化处 理,如图所示。
使用MXML定义控件
2.3.2 自定义组件
在Flex中,不仅可以使用Flex提供的丰富的组件,还可以 利用MXML在这些组件的基础上定义组件。 与Flex提供的组件不同,自定义组件需要开发者自己编写。 在Flex的组件文件中定义,然后在需要的地方对该组件进 行引用。 下面的例子是一个自定义的银行选择组件,如图所示。
2.3.6 存储和验证数据
可以使用数据模型来存储特定数据,数据模型是一个可以 提供存储数据属性和包含附加方法的ActionScript对象。 声明一个简单的没有任何方法的数据模型可以使用 <mx:Model> 或<mx:XML>标记,还可以使用验证组件验证存 储数据的有效性。Flex包含了一套标准的数据验证组件, 当然也可以创建自己的验证组件。详细情况可以参考Flex 数据篇中“存储数据”、“验证数据”相关章节。 下面的例子显示了一个简单的数据验证,如图所示。
2.2.3 文件结构
描述应用程序的MXML文件必须有一个位于其他元素之外的 Application标签,如下所示。 <?xml version="1.0"?> <mx:Application xmlns:mx="/2006/mxml"> <!--定义其他界面元素--> </mx:Application> 在上面的代码中xmlns属性,声明了XML的命名空间。命名 空间可以让用户在单个文档中使用多重XML语言,而避免混 淆不同语言中相同的元素名称。这里的":mx"就是一个在特 定命名空间中使用的前缀。这里定义的命名空间是标准的 MXML类库,它必须包含在每个MXML文件中。
2.3 Flex中使用MXML
MXML从本质上说一种XML规范的标签语言。在Flex 中,利用MXML标签来定义用户接口和基本组件, 如控件类DataGrid、Label、Button和Hslider等, 但是有时也用来定义一些非可视的对象,比如数 据服务数据源的封装和绑定(WebService连接和 数据绑定等),还有一些效果类。下面主要从功 能的角度介绍Flex中MXML的使用。
格式化数据
2.3.8 命名空间
在XML中,属性“xmlns”指定xml的命名空间。在MXML中同样使用 该属性定义命名空间。在XML中标签和命名空间是紧密关联的。 使用命名空间后,可以使用自定义标签。在下面的例子中包含一 个自定义标签:“CustomBox”。 <?xml version="1.0"?> <mx:Application xmlns:mx="/2006/mxml" xmlns:my="containers.boxes.*"> <mx:Panel title="命名空间例子" marginTop="10" marginBottom="10" marginLeft="10" marginRight="10" > <my:CustomBox/> </mx:Panel> </mx:Application>
2.2 MXML语法基础
MXML遵循XML的标准,但对于XML中的标签、属性、 文件结构等XML元素进行了相应的约束和扩展。本 节讲述MXML中如何定义标签、属性等元素,即 MXML的语法基础。
2.2.1 标签
MXML是一种描述Flex应用程序构造的XML语言。每 个MXML文件应该以一个XML声明开始: <?xml version="1.0"?> <?xml version="1.0" encoding="utf-8"?> 和其他XML语言一样,MXML包含元素(标签)和属 性,对大小写敏感。但标签名称以大写字母开头, 大小写混合,必须有对应的结束标签,如下所示。 <ComboBox> </ComboBox> 也可以这样结束对没有内容的标签,如下所示。 <ComboBox/>
使用数据绑定
2.3.4 使用样式表
MXML中可以利用<mx:Style>标签定义样式或者引入外部的 样式表。Flex使用样式表标准来保证用户界面的一致性, 并使应用更易于维护。就像在HTML中一样,可以在应用中 嵌入一个指向外部的样式表,或在特定的标记元素下,将 某种风格定义为其属性。 下面的应用中即使用<mx:Style>引入外部的样式表,如图 所示。