Flex - 应用程序



在使用 Flash Builder 创建实际的 “HelloWorld” 应用程序之前,让我们先了解 Flex 应用程序的实际组成部分。

Flex 应用程序由以下四个重要部分组成,其中最后一个部分是可选的,但前三个部分是必须的。

  • Flex 框架库
  • 客户端代码
  • 公共资源 (HTML/JS/CSS)
  • 服务器端代码

典型 Flex 应用程序(如 HelloWord)的不同部分的示例位置如下所示:

名称 位置
项目根目录 HelloWorld/
Flex 框架库 构建路径
公共资源 html-template
客户端代码 table table-bordered/com/tutorialspoint/client
服务器端代码 table table-bordered/com/tutorialspoint/server

应用程序构建过程

首先,Flex 应用程序需要 Flex 框架库。稍后,Flash Builder 会自动将库添加到构建路径。

当我们使用 Flash Builder 构建代码时,Flash Builder 将执行以下任务:

  • 将源代码编译成 HelloWorld.swf 文件。

  • 从存储在 html-template 文件夹中的 index.template.html 文件编译 HelloWorld.html(swf 文件的包装文件)。

  • 将 HelloWorld.swf 和 HelloWorld.html 文件复制到目标文件夹 bin-debug 中。

  • 将 swfobject.js(一个负责在 HelloWorld.html 中动态加载 swf 文件的 JavaScript 代码)复制到目标文件夹 bin-debug 中。

  • 将框架库以名为 frameworks_xxx.swf 的 swf 文件的形式复制到目标文件夹 bin-debug 中。

  • 将其他 Flex 模块(.swf 文件,例如 sparkskins_xxx.swf、textLayout_xxx.swf)复制到目标文件夹中。

应用程序启动过程

  • 在任何 Web 浏览器中打开位于 \HelloWorld\bin-debug 文件夹中的 HelloWorld.html 文件。

  • HelloWorld.swf 将自动加载,应用程序将开始运行。

Flex 框架库

以下是关于一些重要框架库的简要说明。请注意,Flex 库使用 .swc 表示法表示。

序号 节点和描述
1

playerglobal.swc

此库特定于安装在您计算机上的 Flash Player,并包含 Flash Player 支持的本机方法。

2

textlayout.swc

此库支持与文本布局相关的功能。

3

framework.swc

这是 Flex 框架库,包含 Flex 的核心功能。

4

mx.swc

此库存储 mx UI 控件的定义。

5

charts.swc

此库支持图表控件。

6

spark.swc

此库存储 Spark UI 控件的定义。

7

sparkskins.swc

此库支持 Spark UI 控件的皮肤化。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

客户端代码

Flex 应用程序代码可以使用 MXMLActionScript 编写。

序号 类型和描述
1

MXML

MXML 是一种 XML 标记语言,我们将使用它来布局用户界面组件。MXML 在构建过程中被编译成 ActionScript。

2

ActionScript

ActionScript 是一种面向对象的程序设计语言,基于 ECMAScript (ECMA-262) 第 4 版草案语言规范。

在 Flex 中,我们可以混合使用 ActionScript 和 MXML 来执行以下操作:

  • 使用 MXML 标记布局用户界面组件。

  • 使用 MXML 声明性地定义应用程序的非可视方面,例如访问服务器上的数据源。

  • 使用 MXML 在用户界面组件和服务器上的数据源之间创建数据绑定。

  • 使用 ActionScript 在 MXML 事件属性内定义事件侦听器。

  • 使用标签添加脚本块。

  • 包含外部 ActionScript 文件。

  • 导入 ActionScript 类。

  • 创建 ActionScript 组件。

公共资源

这些是 Flex 应用程序引用的帮助文件,例如位于 html-template 文件夹下的主机 HTML 页面、CSS 或图像。它包含以下文件:

序号 文件名和描述
1

index.template.html

主机 HTML 页面,带有占位符。Flash Builder 使用此模板构建包含 HelloWorld.swf 文件的实际页面 HelloWorld.html。

2

playerProductInstall.swf

这是一个 Flash 实用程序,用于以快速模式安装 Flash Player。

3

swfobject.js

这是负责检查已安装的 Flash Player 版本并在 HelloWorld.html 页面中加载 HelloWorld.swf 的 JavaScript。

4

html-template/history

此文件夹包含应用程序历史记录管理的资源。

HelloWorld.mxml

这是实现应用程序业务逻辑的实际 MXML/AS(ActionScript)代码,Flex 编译器将其转换为 SWF 文件,该文件将在浏览器中由 Flash Player 执行。

HelloWorld Entry 类的示例如下:

<?xml version = "1.0" encoding = "utf-8"?>
<s:Application xmlns:fx = "http://ns.adobe.com/mxml/2009" 
   xmlns:s = "library://ns.adobe.com/flex/spark" 
   xmlns:mx = "library://ns.adobe.com/flex/mx"
   width = "100%" height = "100%"
   minWidth = "500" minHeight = "500" 
   initialize = "application_initializeHandler(event)">

   <fx:Script>
      <![CDATA[
         import mx.controls.Alert;
         import mx.events.FlexEvent;
         protected function btnClickMe_clickHandler(event:MouseEvent):void {
            Alert.show("Hello World!");				
         }

         protected function application_initializeHandler(event:FlexEvent):void {
            lblHeader.text = "My Hello World Application";				
         }
      ]]>
   </fx:Script>
   
   <s:VGroup horizontalAlign = "center" width = "100%" height = "100%" 
      paddingTop = "100" gap = "50">
      <s:Label id = "lblHeader" fontSize = "40" color = "0x777777" />
      <s:Button label = "Click Me!" id = "btnClickMe" 
         click = "btnClickMe_clickHandler(event)" />
   </s:VGroup>	
</s:Application>

下表描述了上述代码脚本中使用的所有标签。

序号 节点和描述
1

Application

定义应用程序容器,它始终是 Flex 应用程序的根标签。

2

Script

包含 ActionScript 语言中的业务逻辑。

3

VGroup

定义一个垂直分组容器,可以以垂直方式包含 Flex UI 控件。

4

Label

表示标签控件,一个非常简单的用户界面组件,用于显示文本。

5

Button

表示按钮控件,可以单击它来执行某些操作。

服务器端代码

这是应用程序的服务器端部分,它是完全可选的。如果您不在应用程序中执行任何后端处理,则不需要此部分;但如果后端需要一些处理,并且您的客户端应用程序与服务器交互,则您必须开发这些组件。

在下一章中,我们将使用所有上述概念使用 Flash Builder 创建 HelloWorld 应用程序。

广告