重要声明:Flex Builder 已经过时
在开始之前,必须强调一个非常重要的信息:Adobe Flex Builder 是一款已经停止开发多年的过时软件,它被 Adobe Flash Builder(基于 Eclipse IDE)所取代,而 Flash Builder 本身也已停止更新,并且随着 Adobe 对 Flash 技术的支持结束,整个 Flex 框架也已进入生命周期终结阶段。

为什么这很重要?
- 不兼容现代技术:Flex Builder 无法使用现代的 Flex SDK、AIR SDK 或任何相关的第三方库。
- 安全风险:使用过时的软件可能带来未知的漏洞。
- 学习资源稀缺:最新的问题和最佳实践很难找到解答。
为什么还要学 Flex? 学习 Flex 主要是为了:
- 维护旧项目:如果你需要接手或维护一个基于 Flex 的遗留系统。
- 了解历史:理解早期RIA(富互联网应用)的开发模式和框架设计思想。
- 兴趣驱动:纯粹出于对这项曾经辉煌的技术的好奇。
给初学者的建议:如果你是刚开始学习编程或前端开发,强烈建议不要学习 Flex,你应该转向现代的前端技术栈,如 React, Vue, 或 Angular,它们拥有更活跃的社区、更丰富的资源和更光明的未来。
第一部分:Flex Builder 基础入门
本部分将带你了解 Flex Builder 的核心概念,就像盖房子前先认识砖头、水泥和图纸一样。

什么是 Flex?
Flex 是一个用于构建富互联网应用的开源框架,它使用 MXML(一种基于 XML 的标记语言)来定义用户界面,使用 ActionScript 3.0(一种强大的面向对象编程语言)来处理业务逻辑和数据。
- MXML (界面):负责页面的布局、组件(按钮、文本框等)的排列和样式,它类似于 HTML,但功能更强大,专为 UI 设计。
- ActionScript 3.0 (逻辑):负责响应用户操作(如点击按钮)、处理数据、与服务器通信等,它类似于 JavaScript,但拥有更严格的类型系统和面向对象特性。
Flex Builder 的核心概念
在 Flex Builder 中,你会遇到几个关键概念:
- 项目:一个完整的 Flex 应用程序,包含所有的 MXML、AS 文件、资源(图片等)和配置文件。
- SDK (Software Development Kit):Flex SDK 是 Flex 的开发工具包,包含了编译器、库文件、文档和调试工具,Flex Builder 内置了一个 SDK,你也可以配置使用其他版本的 SDK。
- 容器:用于放置和管理其他组件的“盒子”。
Application是最顶层的容器,Panel是一个带标题的面板,VBox和HBox分别用于垂直和水平排列子组件。 - 控件:用户界面的基本元素,如
Button(按钮)、Label(标签)、TextInput(文本输入框)、DataGrid(数据网格)等。 - 数据绑定:Flex 的一个核心特性,可以轻松地将 ActionScript 中的数据与 MXML 中的控件属性关联起来,当数据改变时,界面会自动更新。
- 事件:用户或系统发生的动作,如
click(点击)、creationComplete(创建完成),你可以编写事件处理器来响应这些动作。
第二部分:Flex Builder 安装与配置
由于 Flex Builder 是旧软件,安装过程可能有些曲折。
软件准备
你需要以下几样东西:

- Flex Builder 安装包:从 Adobe 官方归档网站或可靠的软件库下载,通常有 "Flex Builder 3" 和 "Flash Builder 4" 等版本,Flash Builder 4 是功能更完善的最后一个版本。
- Java 运行环境:Flex Builder 3/4 基于 Eclipse,需要 JRE 支持,请确保安装了与版本匹配的 JRE。
- AIR SDK:如果你的应用需要打包成桌面应用,需要下载对应的 Adobe AIR SDK。
安装步骤
- 安装 JRE:如果未安装,先安装 Java 运行环境。
- 安装 Flex Builder:运行下载的安装程序(
FlexBuilder3_WWEJ.exe),按照向导完成安装。 - 配置 AIR SDK (可选):为了能打包 AIR 应用,你需要将下载的 AIR SDK 解压,并将其路径添加到 Flex Builder 的构建路径中,这通常在
Window -> Preferences -> Flex -> AIR SDK中配置。
第三部分:创建你的第一个 Flex 应用程序
让我们动手写代码,感受一下 Flex 的魅力。
步骤 1:创建新项目
- 打开 Flex Builder。
- 选择
File -> New -> Flex Project。 - Project Name: 输入
HelloWorld。 - Application type: 选择
Web application(如果你想做网页应用)。 - 点击
Finish。
Flex Builder 会为你生成一个默认的 HelloWorld.mxml 文件。
步骤 2:编写界面代码
打开 HelloWorld.mxml,你会看到类似下面的代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Label text="Hello World" />
</mx:Application>
代码解释:
<?xml ...?>:XML 声明。<mx:Application ...>:这是整个应用的根容器,所有其他控件都必须放在它里面。xmlns:mx="http://www.adobe.com/2006/mxml":声明了mx命名空间,它代表 Flex 的核心组件库。<mx:Label ...>:一个简单的标签控件,用于显示文本。
步骤 3:运行程序
点击工具栏上的绿色“运行”按钮(或按 Ctrl + F11),Flex Builder 会编译你的代码,并在默认浏览器中显示一个页面,上面写着 "Hello World",恭喜你,你的第一个 Flex 程序运行成功了!
第四部分:一个更完整的例子:简单的计算器
让我们创建一个带逻辑的简单计算器,来体验 MXML 和 ActionScript 的结合。
界面布局
在 Calculator.mxml 中,我们使用 VBox 垂直排列组件,使用 HBox 水平排列按钮。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Panel title="简单计算器" width="300" height="250">
<!-- 显示结果的文本框 -->
<mx:TextInput id="resultDisplay" editable="false" width="100%" />
<!-- 按钮区域 -->
<mx:VBox width="100%">
<mx:HBox width="100%">
<mx:Button label="7" click="onButtonClick('7')" />
<mx:Button label="8" click="onButtonClick('8')" />
<mx:Button label="9" click="onButtonClick('9')" />
<mx:Button label="+" click="onButtonClick('+')" />
</mx:HBox>
<mx:HBox width="100%">
<mx:Button label="4" click="onButtonClick('4')" />
<mx:Button label="5" click="onButtonClick('5')" />
<mx:Button label="6" click="onButtonClick('6')" />
<mx:Button label="-" click="onButtonClick('-')" />
</mx:HBox>
<mx:HBox width="100%">
<mx:Button label="1" click="onButtonClick('1')" />
<mx:Button label="2" click="onButtonClick('2')" />
<mx:Button label="3" click="onButtonClick('3')" />
<mx:Button label="=" click="onEqualsClick()" />
</mx:HBox>
<mx:HBox width="100%">
<mx:Button label="C" click="onClearClick()" />
<mx:Button label="0" click="onButtonClick('0')" />
</mx:HBox>
</mx:VBox>
</mx:Panel>
</mx:Application>
这里我们给每个按钮的 click 事件都绑定了一个函数,onButtonClick('7')。
逻辑实现
我们需要在 MXML 文件中嵌入 ActionScript 代码来处理这些事件。
在 代码解释: 注意:为了让上面的代码完整,你需要将 和 按钮的 由于 Flex 已经过时,资源比较分散,但以下是一些可以找到帮助的地方: Adobe 官方文档存档: 书籍: 社区和论坛: 这份教程为你提供了一个学习 Flex Builder 的路线图,从理解 MXML 和 ActionScript 的分工,到安装配置环境,再到编写一个简单的计算器,你应该对 Flex 的基本工作方式有了初步的认识。 再次强调,学习 Flex 是一项“考古”性质的活动,请务必根据你的实际需求来决定投入多少时间,祝你学习顺利!<mx:Application> 标签内添加 <mx:Script>
<mx:Script>
<![CDATA[
// 定义变量来存储操作数和操作符
private var operand1:Number = 0;
private var operand2:Number = 0;
private var currentOperator:String = "";
private var isNewInput:Boolean = true;
// 按钮点击事件处理函数
private function onButtonClick(value:String):void {
if (isNewInput) {
resultDisplay.text = value;
isNewInput = false;
} else {
resultDisplay.text += value;
}
}
// 运算符点击事件处理函数
private function onOperatorClick(op:String):void {
operand1 = Number(resultDisplay.text);
currentOperator = op;
isNewInput = true;
}
// 等号点击事件处理函数
private function onEqualsClick():void {
operand2 = Number(resultDisplay.text);
var result:Number = 0;
switch(currentOperator) {
case "+":
result = operand1 + operand2;
break;
case "-":
result = operand1 - operand2;
break;
// 可以添加更多运算符
}
resultDisplay.text = result.toString();
isNewInput = true;
}
// 清除按钮点击事件处理函数
private function onClearClick():void {
resultDisplay.text = "0";
operand1 = 0;
operand2 = 0;
currentOperator = "";
isNewInput = true;
}
]]>
</mx:Script>
<![CDATA[ ... ]]>:在 XML 中嵌入代码块,防止 <, > 等字符被解析。private function ...:定义 ActionScript 函数。id="resultDisplay":MXML 中通过 id 可以在 ActionScript 中引用对应的控件。Number() 和 toString():用于在字符串和数字之间转换。click 事件分别改为 onOperatorClick('+') 和 onOperatorClick('-')。
第五部分:学习资源推荐
