译者:Balan
原文:Building and running Flex applications (from 'How Flex Works', Adobe Flex 2 Help)
Flex是一种开发和运行环境,我们可以通过它创建富网络应用程序(RIA),这些程序使用Adobe® Flash® Player 9来传递更加直观和更富有交互性的在线体验。
Flex应用程序开发流程
以下是创建Flex应用程序的典型步骤:
- 使用一组预定义的组件(表单,按钮等)定义应用界面
- 将组件组织到用户界面设计中
- 使用样式和主题限定视觉设计
- 添加动态行为(比如应用各个部分之间的交互)
- 如有需要,定义并连接数据服务
- 将源代码编译为运行在Flash Player中的SWF格式文件
以上只是典型的开发流程;我们不必遵照精确的顺序操作。
Flex应用的元素
典型的Flex应用包含以下元素
Flex 框架 | Adobe® Flex 2 框架包含所有我们构建RIA所需要的组件:
Flex框架含于一个共享组件库(SWC)内。 |
MXML
| 每个Flex应用至少要包含一份MXML文件,作为主应用文件。 MXML是一种实现了XML的标记语言。它专为创建Flex应用而设计,可以显示的定义使用标签的应用程序的结构。 |
ActionScript 3.0 | ActionScript和JavaScript类似,都是ECMAScript的实现。ActionScript 3.0可以将动态行为添加到应用程序中:1,直接作为script块添加在MXML文件中;2,创建独立的ActionScript函数文件,再引入到MXML文件中。 |
CSS | 视觉组件(buttons、list boxes等)中的样式属性(attributes)受组件属性(properties)的控制。举例来说,按钮(button)组件拥有字体族(fontFamily)属性,用作设定自身字体。样式属性受多种因素控制:主题(theme)、CSS文件中定义的样式、MXML文件中样式块(style blocks)定义的样式,或者在组件实例中设定的自身样式属性。 |
Graphic assets | 和大部分应用一样,Flex应用包含各种各样的图形资源(Graphic assets),比如图标和其他图像。 |
Data | 一些组件用作展示数据(比如combo box 或 data grid)。我们使用数组、集合对象、数据模型和外置XML数据源等等来为这些组件填充数据。 |
Flex应用如何编译、部署
所有这些元素的终点要么是编译成你的Flex应用,要么是连接到你的Flex应用,如下图所示:
Flex应用被编译为可以在Flash Player中的SWF文件。当源代码被编译为Flex应用程序时,也就被转换成了ActionScript类,之后又和图形或其他资源一起合并为SWF文件。运行的时候,Flex应用程序的SWF文件视需要而和外部库、服务和数据服务交互。
标准的Flex应用不需要服务端Flex服务。因此,在本地编译并从WEB服务器上的HTML页面发布给你的用户即可。
当然了,你可以使用Adobe® Flex Data Services 2,Cold Fusion Flash Remoting Service,或者其他的Java 和 J2EE服务来创建Flex应用,这时的Flex 应用从应用服务器中发布。(译者注:其实此时不是必须使用应用服务器)
MXML: Flex知识的起点
我们在MXML中用Flex组件定义用户界面。下面是一个作为主MXML应用文件的例子:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Panel>
<mx:TextArea text="Say hello to Flex!" />
<mx:Button label="Close" />
</mx:Panel>
</mx:Application>
如果你对XML熟悉的话,一眼就认出例子采用的格式了。MXML在前两行包含了版本、编码类型和命名空间信息;文件体(正文)部分则包含了内容。
所有Flex应用的内容部分都被包在<mx:Application> 这个父标签内,添加进来的组件被当作子标签。
这个例子创建了一个简单的"Say hello to Flex!" 应用程序。文本区(TextArea)和按钮(Button)组件都是通过标签声明的;文本内容和按钮名称都是标签的属性(Text和lable)值。
注意
MXML文件的每个标签都以mx开头,mx是专为Flex设计的名称。
编译并运行那个例子应用:
Flex程序就作为SWF运行在浏览器中了。