杰瑞科技汇

Flex Builder教程从哪开始学?

重要声明:Flex Builder 已经过时

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

Flex Builder教程从哪开始学?-图1
(图片来源网络,侵删)

为什么这很重要?

  • 不兼容现代技术:Flex Builder 无法使用现代的 Flex SDK、AIR SDK 或任何相关的第三方库。
  • 安全风险:使用过时的软件可能带来未知的漏洞。
  • 学习资源稀缺:最新的问题和最佳实践很难找到解答。

为什么还要学 Flex? 学习 Flex 主要是为了:

  1. 维护旧项目:如果你需要接手或维护一个基于 Flex 的遗留系统。
  2. 了解历史:理解早期RIA(富互联网应用)的开发模式和框架设计思想。
  3. 兴趣驱动:纯粹出于对这项曾经辉煌的技术的好奇。

给初学者的建议:如果你是刚开始学习编程或前端开发,强烈建议不要学习 Flex,你应该转向现代的前端技术栈,如 React, Vue, 或 Angular,它们拥有更活跃的社区、更丰富的资源和更光明的未来。


第一部分:Flex Builder 基础入门

本部分将带你了解 Flex Builder 的核心概念,就像盖房子前先认识砖头、水泥和图纸一样。

Flex Builder教程从哪开始学?-图2
(图片来源网络,侵删)

什么是 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 是一个带标题的面板,VBoxHBox 分别用于垂直和水平排列子组件。
  • 控件:用户界面的基本元素,如 Button(按钮)、Label(标签)、TextInput(文本输入框)、DataGrid(数据网格)等。
  • 数据绑定:Flex 的一个核心特性,可以轻松地将 ActionScript 中的数据与 MXML 中的控件属性关联起来,当数据改变时,界面会自动更新。
  • 事件:用户或系统发生的动作,如 click(点击)、creationComplete(创建完成),你可以编写事件处理器来响应这些动作。

第二部分:Flex Builder 安装与配置

由于 Flex Builder 是旧软件,安装过程可能有些曲折。

软件准备

你需要以下几样东西:

Flex Builder教程从哪开始学?-图3
(图片来源网络,侵删)
  1. Flex Builder 安装包:从 Adobe 官方归档网站或可靠的软件库下载,通常有 "Flex Builder 3" 和 "Flash Builder 4" 等版本,Flash Builder 4 是功能更完善的最后一个版本。
  2. Java 运行环境:Flex Builder 3/4 基于 Eclipse,需要 JRE 支持,请确保安装了与版本匹配的 JRE。
  3. AIR SDK:如果你的应用需要打包成桌面应用,需要下载对应的 Adobe AIR SDK。

安装步骤

  1. 安装 JRE:如果未安装,先安装 Java 运行环境。
  2. 安装 Flex Builder:运行下载的安装程序(FlexBuilder3_WWEJ.exe),按照向导完成安装。
  3. 配置 AIR SDK (可选):为了能打包 AIR 应用,你需要将下载的 AIR SDK 解压,并将其路径添加到 Flex Builder 的构建路径中,这通常在 Window -> Preferences -> Flex -> AIR SDK 中配置。

第三部分:创建你的第一个 Flex 应用程序

让我们动手写代码,感受一下 Flex 的魅力。

步骤 1:创建新项目

  1. 打开 Flex Builder。
  2. 选择 File -> New -> Flex Project
  3. Project Name: 输入 HelloWorld
  4. Application type: 选择 Web application (如果你想做网页应用)。
  5. 点击 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 代码来处理这些事件。

<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('-')


第五部分:学习资源推荐

由于 Flex 已经过时,资源比较分散,但以下是一些可以找到帮助的地方:

  1. Adobe 官方文档存档

  2. 书籍

    • 《Adobe Flex 3 Bible》:非常经典的入门到精通书籍。
    • 《Programming Flex 2》:O'Reilly 出版,质量很高。
  3. 社区和论坛

    • Stack Overflow:搜索 "flex" 或 "actionscript-3",有大量历史问题。
    • Adobe 官方论坛 (已关闭):虽然官方论坛已关闭,但通过 Wayback Machine 等互联网档案馆可以找到很多有价值的历史帖子。

这份教程为你提供了一个学习 Flex Builder 的路线图,从理解 MXML 和 ActionScript 的分工,到安装配置环境,再到编写一个简单的计算器,你应该对 Flex 的基本工作方式有了初步的认识。

再次强调,学习 Flex 是一项“考古”性质的活动,请务必根据你的实际需求来决定投入多少时间,祝你学习顺利!

分享:
扫描分享到社交APP
上一篇
下一篇