- 浏览: 24828 次
最新评论
Flex 组成、变量、函数、命名空间
2011年04月13日
Adobe? Flex?是Adobe公司的多平台的RIA(Rich Internet Applications)开发产品
RIA全称为“Rich Internet Application”,其意思为“富互联网应用程序”。它具有高度的用户互动性和丰富的用户体验
Adobe公司的Flex是一个安装在客户端的表现层的服务器;Flex表现层服务器包含了Flex应用框架和Flex运行服务。Flex框架又包含了MXML描述语言,ActionScript程序语和Flex类库。
Flex应用需要至少一个的MXML文件或ActionScript类文件来构成Flex应用的源程序。
Flex Builder:Flex Builder是Adobe格式官方发布的IDE(集成开发系统),用来构建在开源的Eclipse IDE上,使用Flex的MXML和ActionScript技术,用来进行Flex书写和调试
与Live Cycle Data Service(LCDS)集成:LCDS是Flex应用的重要组成部分,简单的说,其作用在于Flex应用与数据层之间的发送和获取数据
多数传统技术包含了至少三层的结构:一个数据层(Data Tier),一个业务层(Business Tier),一个表现层(Presentation Tier)。数据层通常指数据库或数据源。业务层指应用核心的业务逻辑部分。
Flex 首先包含了一个数据层(Data Tier)和一个业务层(Business Tier),数据层和业务层中间的集成层(Integration Tier),表现层(Presentation Tier)。与传统技术不同的是,Flex还有一层客户层(Client Tier),这是与传统网页技术完全不同的一个层面。Flex的客户层允许用户可以脱离服务器的工作,不受网络的限制,并且与用户更好的互动。
MXML
MXML是一种XML语言,最基本的作用是用来布局Flex应用程序的用户界面。MXML也可以用来定义不可视的Flex应用。例如,它可以定义数据源,并将数据源绑定到用户界面。
MXML 类似于HTML,它也提供各种标签来定义用户界面MXML标签不仅包括可视的标签,如数据表格(DataGrid)、树结构(Tree)、菜单 (Menu)等;它还包括不可视的标签,如Web Service连接、数据绑定、动画效果等。用户还可以将用户自定义的组件,定义为一个MXML标签。
MXML和HTML最大区别在于MXML定义的应用程序,需要被编译成SWF文件,并在Flash Player上运行。
定义XML编码格式
标签是所有Flex应用程序的根标签。
在 Flex编程中,编程者使用两种语言来进行Flex应用编程:MXML和ActionScript。一般来说,MXML实现了在MVC(Model、 View和Control)编程模式中的View(视图)部分,而ActionScript则完成Model(模式)的部分。
MXML标签相当于ActionScript中的类的属性,大多数MXML标签对应于ActionScript类或类的属性。
MXML 文件名必须是合法的ActionScript标识符号。文件名必须以字母或者下划线(_)起始。文件名中只能包含字母、数字和下划线。文件名不能与 ActionScript类的名字、组件名一样,也不能是“Appliction”。同时,不要使用文件名与MXML标签名一样。文件名必须有小写的.mxml后缀。
在ActionScript中,与上述MXML代码得到相同结果的代码如下所示:
myText.text= "hello world";
myText.setStyle("fontFamily", "Tahoma");
有些MXML标签的属性可以设定为URL的值。例如,在中,可以使用source属性来定义外部的一个ActionScript文件。MXML支持下列类型的URL:
绝对路径:就是文件或目录在硬盘上真正的路径。示例如下。
动态的路径:它与Flex运行根路径有关。示例如下。
编译时的路径:它与Flex运行根路径有关。示例如下。
相对路径:就是从当前目录下找到所需文件的路径。示例如下。
下面的这组标签不直接与ActionScript对象和属性有对应关系,通称为编译标签。这些标签在MXML中均用来进行与数据有关的,不可视的设计。
:绑定标签,用来进行在MXML代码中的数据绑定工作。
:组件标签,定义一个文件内部可视组件的实体。
:元数据标签,提供给Flex编译器关于如何使用MXML组件信息。
:模式标签,在MXML代码中定义数据模式。
:ActionScript标签,用来嵌入ActionScript代码。
:样式标签,用来嵌入样式表单。
:XML标签,是编译时的标签,用来从文本模式产生XML对象,或XMLNode对象。
:XMLList标签,是编译时的标签,用来从包含有效的XML节点的文本模式来产生一个XMLList对象。
:WebService的操作标签,用来定义WebService的操作。
:WebService的操作标签的需求项,用来定义WebService的操作所要的需求项。
:RemoteObject的方法标签,用来定义RemoteObject所使用的方法。
:RemoteObject的方法标签的参数,用来定义RemoteObject所使用的方法的参数。
MXML标签规则
不是所有的标签都要求有id属性。
所有的根标签都不能有id属性。
布尔属性只有true和false两个值。
要求有source和destination属性。
标签不能有id属性。
标签要求wsdl和serviceName中的其中一项,但不允许两者一起出现。
标签要求source和name中的其中一项,但不允许两者一起出现。
标签要求url和serviceName中的其中一项,但不允许两者一起出现。
标签要求name值,但不允许重复name的值。
标签不能有id属性。
标签要求name值,但不允许重复name的值。
标签不能有id属性。
Web Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作
ActionScript是对大小写敏感的语言。
定义一个变量时必须使用var关键词,示例如下:
var index; //定义一个变量。
没有定义变量类型在ActionScript中是合法的,但会给出一个警告信息。定义一个整数类型的变量代码如下所示。 var index:int; //定义一个整数类型变量。
一 个全局(global)变量是在任何函数之外声明的变量,它在整个代码中都可以引用和修改。与之相对的是局部(local)变量,它是在函数内部被定义, 只在这一部分代码中可以被引用和修改的变量。在ActionScript中,变量的作用范围就是在其中定义此变量的函数或类。全局变量则是在函数和类之外 定义的变量。
ActionScrpt使用const声明,用来建立常量。常量只能被赋值一次。常量的必须在声明的范围内被赋值
var numArray:Array = ["zero", "one", "two"]; //定义一个数组。
数 据类型检查可以在编译时间或运行时间进行。静态语言,如C++或Java是在编译时间进行检查;动态语言,如Python是在运行时间进行检查。 ActionScript做为一种动态的语言,也是在运行时间进行检查,但它也支持在编译时间进行检查。当定义编译器的模式为严格模式(strict mode)时,支持在编译和运行时的类型检查。在普通模式下,支持运行时的类型检查。
is操作符是ActionScript新的操作符, 用来测试变量或表达式数据类型。下述的示例建立一个Sprite类的实例,命名为mySprite。代码首先使用is来检查mySprite是否为 Sprite和DisplayObject类的一个实例,然后检查它是否为IEventDispatcher interface的一个成员。
var mySprite:Sprite = new Sprite();
trace (mySprite is Sprite); //输出: true
trace (mySprite is DisplayObject); //输出: true
trace (mySprite is IEventDispatcher); //输出: true
as 操作符是ActionScript新的操作符,用来测试表达式是否是给定的数据类型的成员。与is操作符不同的是,as操作符不返回布尔值,而是返回表达 式的值。下述的示例使用as操作符代替is操作符,以测试Sprite实例是否是一个DisplayObject和IEventDispather数据类 型的成员。
var mySprite:Sprite = new Sprite();
trace (mySprite as Sprite); //输出: 〔object Sprite〕
trace (mySprite as DisplayObject); //输出: 〔object Sprite〕
trace (mySprite as IEventDispatcher); //输出: 〔object Sprite〕
类 型转换是指将数据从一个数据类型转换为其他数据类型。类型转换可以是隐含的(implicit)和不隐含的(explicit)。隐含的转换也称为强制的 (coercion),在运行时使用。例如,如果给一个布尔类型的变量赋值为“2”,编译器则转换布尔数值为true。不隐含的转换也称为转型 (casting),在编译时改变变量类型所使用。语法如下代码所示。
var myBoolean:Boolean = true;
var myINT:int = int(myBoolean);
trace(myINT); //输出: 1
如果一个函数是一个类的一部分,或者是依附于一个对象实例,被称为方法。其他的方式称为函数closure
使用return声明在函数中返回数值,return后面可以跟随一个值或者一个表达式。下面的示例显示了函数返回一个表达式所产生的值,代码如下所示。
function doubleNum(baseNum:int):int {
return (baseNum * 2);
}
包和命名空间是相关的概念,包允许编程者将类打包到一起,帮助实现代码分享和减小命名的冲突,同时帮助管理类文件。命名空间允许编程者控制每个对象的可视性。
在ActionScript中,包是由命名空间来实现的,但它们不是同义词。当定义一个包时,就要建立一个特定类型的命名空间,保证在编译时能被识别。当命名空间直接建立时,不需要在编译时被识别。
ActionScript 提供了非常灵活的方法来组织包,类和源文件。ActionScript允许建立多个类在一个源文件中,但每个文件中只有一个类可以在包中被声明。在包中的 类的名称必须和文件名一致。在ActionScript中使用package语句来声明包。其语法示例如下所示:
package 文件包名 {
public class 类名 {}
}
如果需要使用包中的一个类,就必须要输入包或者特定的类。示例代码如下所示。
import samples.*; //输入samples类
如果只需要使用包中的一个类,建议使用下面的用法。因为输入整个包可能会引起文件名冲突。
import samples.SampleCode;
命名空间用来控制编程者建立的属性和方法的可视性。使用ActionScript命名空间有以下三个基本的步骤。
(1)使用namespace关键词来定义命名空间,代码如下所示。
namespace vsersion1;
(2)在定义属性和方法时使用命名空间,代码如下所示。
version1 function myFunction () {};
(3)当使用了命名空间,就可以使用use来引用命名空间,代码如下所示。
use namespace version1;
myFunction();
使 用MXML文件中,用户可以使用标签直接把ActionScript代码放置在文件中,也可以包含(include) 在里面。当使用时,所有的内容都必须包含在CDATA结构中。这样保证编译将script块当作 XML来处理。因此Flex建议使用以下的结构来包含ActionScript代码。
文章来自超越EBIBI - RIA在线应用中文门户,富应用正版发行平台,详细参考:http://www.ebibi.com/i/experience/2011/0407/3737.h tml
发表评论
-
字符串处理
2012-07-06 09:51 618第一节、字符串查找 1.1题目描述: 给定一个字符 ... -
笔记-正则表达式的2种引擎
2012-07-06 09:44 697正则表达式的引擎分为2种,一种是DFA引擎,一种是NFA引 ... -
常用正则表达式手册
2012-07-06 09:36 599匹配中文字符的正则表达式: [u4e00-u9fa5] ... -
网页换皮肤
2012-07-06 09:29 520... -
后台向前台js传递参数
2012-07-05 20:44 723aspx页面代码 //图片预览效果 function S ... -
基于组件中间件的前端架构
2012-07-03 13:42 738在现在的软件设计上,基本上采用的都是分布式系统,前端尤其突 ... -
基于组件中间件的前端架构
2012-07-03 12:15 596在现在的软件设计上,基本上采用的都是分布式系统,前端尤其突 ... -
Flex做的颜色器
2012-07-02 10:10 461此效果用对象的toString()方法来格式化输出字符串类 ... -
flex LineChart 的demo
2012-07-02 10:10 515... -
flex图片截取保存本地
2012-07-02 10:10 593Alert{font-size:12px;} ... -
Flex中,跨List实现SHIFT多选的例子
2012-07-02 10:10 640最近工作中遇到的问题,客户要求做这么个东西。还是稍微 ... -
FLEX 条形图(柱状图)设置刻度为百分比
2012-07-01 09:29 1070作者原创,如需转载请注明出处:www.krzone.org ... -
谈谈我对未来的想法吧
2012-07-01 09:28 760来总行珠海研发中 ... -
JavaFX Script With Eclipse 入门
2012-07-01 09:28 514最近Java社区最火的就是JavaFX Script的发布 ... -
Linux网络入侵检测软件
2012-07-01 09:28 690本软件是本人的毕业设计"作品"。当年是 ... -
Spring 3.0 整合 iBatis 3 Beta10 配置
2012-07-01 09:28 576弄了好长时间了,上网找各种资料,文档,最后发现Spring ... -
Flex Javascript交互实现代码
2012-06-30 11:13 541Flex Javascript交互实现代码 2010年09月 ... -
我参与的《云计算》项目前台Flex架构
2012-06-30 11:13 509我参与的《云计算》项 ... -
[引用]Ant 在Flex中的应用
2012-06-30 11:13 568[引用]Ant 在Flex中的应用 2011年08月13日 ... -
oracle之物理数据库结构概述(数据文件、重做日志文件,控制文件等各种数据库文件)
2012-01-20 02:25 507oracle之物理数据库结构 ...
相关推荐
flex4各类函数中文帮助文档。CHM格式,flex开发程序员必备。
flex的命名规范 flex4.5 flex的命名规范 flex4.5
使用flex绘制数学函数的小程序 有源码 适合初学者学习
此软件可以方便输出项目中的指定变量的值,是swf调试的好帮手,如果要安装此软件,一定要先安装支持air的环境
十二个非常有用的Flex函数Source In Flex(转)十二个非常有用的Flex函数Source In Flex(转)十二个非常有用的Flex函数Source In Flex(转)十二个非常有用的Flex函数Source In Flex(转)十二个非常有用的Flex函数...
arcgis server flex API 函数及调用实例 FLEX 地图实例
通过ASCB包,可以在FLEX环境中对字符、数字、日期等进行各种快捷的函数处理。如字符转为日期等。
Flex4的流程设计中,节点拖动所连带的连线拖动问题和连线箭头的绘制
Flex开发环境搭建,包括:java、tomcat、Flash Builder、svn等配置
flex4金额变大写函数 如:123004.56=壹拾贰万叁仟零肆元伍角陆分
费了好大力气才找到的,希望对大家有帮助。从安装等简单的东西,到使用本地数据库,网络,本地化等高级的功能。
flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图...
FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效
Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex ...
flex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex学习的好资源啊
Flex简介Flex简介Flex简介Flex简介Flex简介
flex事件flex事件flex事件flex事件flex事件
Flex 组件Flex 组件Flex 组件Flex 组件Flex 组件
2、双引号内的字符串,支持 $变量名 转义为对应的变量值。 3、增加内联函数,内联函数使用要求 4、添加和删除事件监听很方便,只需要+-即可 5、添加flash.Memory类,高速读写单字节、整型、浮点型数据
Flex map集合实现,可以直接在项目中使用,几个简单的工具类