Flex - 应用


在我们开始使用 Flash Builder 创建实际的“HelloWorld”应用程序之前,让我们看看 Flex 应用程序的实际部分是什么 -

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

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

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

姓名 地点
项目根目录 你好世界/
Flex 框架库 构建路径
公共资源 html 模板
客户端代码 表 table-bordered/com/tutorialspoint/client
服务器端代码 表 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,这是一个 JavaScript 代码,负责在目标文件夹 bin-debug 的 HelloWorld.html 中动态加载 swf 文件

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

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

应用程序启动流程

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

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

Flex 框架库

以下是几个重要框架库的简要细节。请注意,Flex 库使用 .swc 表示法表示

先生编号 节点及描述
1

玩家全局.swc

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

2

文本布局.swc

该库支持文本布局相关功能。

3

框架.swc

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

4

MXC

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

5

图表.swc

该库支持图表控件。

6

火花.swc

该库存储spark UI控件的定义。

7

火花皮.swc

该库支持 Spark UI 控件的换肤。

客户端代码

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

先生编号 类型和描述
1

MXML

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

2

动作脚本

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

在 Flex 中,我们可以混合 ActionScript 和 MXML,以执行以下操作 -

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

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

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

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

  • 使用添加脚本块标签。

  • 包括外部 ActionScript 文件。

  • 导入 ActionScript 类。

  • 创建 ActionScript 组件。

公共资源

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

先生编号 文件名和描述
1

索引.模板.html

托管 HTML 页面,带有占位符。Flash Builder 使用此模板通过 HelloWorld.swf 文件构建实际页面 HelloWorld.html。

2

播放器产品安装.swf

这是一个用于在快速模式下安装 Flash Player 的 Flash 实用程序。

3

swfobject.js

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

4

html-模板/历史

该文件夹包含用于应用程序历史管理的资源。

HelloWorld.mxml

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

示例 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

应用

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

2

脚本

包含 ActionScript 语言的业务逻辑。

3

V组

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

4

标签

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

5

按钮

表示一个 Button 控件,单击该控件可以执行某些操作。

服务器端代码

这是应用程序的服务器端部分,它是非常可选的。如果您没有在应用程序中进行任何后端处理,那么您不需要这部分,但如果后端需要一些处理并且您的客户端应用程序与服务器交互,那么您将必须开发这些组件。

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