使用 ActionScript 构建应用程序

编写 ActionScript 来构建应用程序的过程不仅仅需要了解使用的语法和类名称。大多数 Flash 平台文档都涉及这两个主题(语法和使用 ActionScript 类)。然而,要构建 ActionScript 应用程序,您还需要了解以下信息:

  • 可以使用哪些程序编写 ActionScript?

  • 如何组织 ActionScript 代码?

  • 如何在应用程序中加入 ActionScript 代码?

  • 开发 ActionScript 应用程序需要按哪些步骤进行?

用于组织代码的选项

您可以使用 ActionScript 3.0 代码来实现任何目的,从简单的图形动画到复杂的客户端-服务器事务处理系统都可以通过它来实现。根据您要构建的应用程序的类型,使用其中一种或多种不同方式在项目中加入 ActionScript。

将代码存储在 Flash Professional 时间轴的帧中

在 Flash Professional 中,可以向时间轴中的任何帧添加 ActionScript 代码。该代码在影片播放期间播放头进入该帧时执行。

通过向帧中添加 ActionScript 代码,可以方便地向使用 Flash Professional 构建的应用程序添加行为。您可以将代码添加到主时间轴中的任何帧,或任何 MovieClip 元件的时间轴中的任何帧。但是,这种灵活性也有一定的代价。构建较大的应用程序时,这会容易导致无法跟踪哪些帧包含哪些脚本。这种复杂的结构会使应用程序随着时间的推移越来越难以维护。

许多开发人员将代码只放在时间轴的第一帧中,或放在 Flash 文档中的特定图层上,以简化在 Flash Professional 中组织其 ActionScript 代码的工作。将代码分隔开可以比较容易地在 Flash FLA 文件中查找和维护代码。然而,不能在另一个 Flash Professional 项目中使用同一代码,除非将代码复制粘贴到该新文件中。

为了将来更容易在其它 Flash Professional 项目中使用 ActionScript 代码,请将代码存储在外部 ActionScript 文件(扩展名为 .as extension 的文本文件)中。

在 Flex MXML 文件中嵌入代码

在 Flex 开发环境(如 Flash Builder)中,可以在 Flex MXML 文件的 <fx:Script> 标签中添加 ActionScript 代码。然而,这种方法会增加大项目的复杂性,使在另一个 Flex 项目中使用同一代码更困难。为了将来更容易在其它 Flex 项目中使用 ActionScript 代码,请将代码存储在外部 ActionScript 文件中。

注: 可以为 <fx:Script> 标签指定一个源参数。通过使用源参数,您可以从外部文件中“导入”ActionScript 代码,就好像直接在 <fx:Script> 标签中键入该代码一样。但是,您使用的源文件不能定义自己的类,因而限制了其可重用性。

将代码存储在 ActionScript 文件中

如果您的项目中包括重要的 ActionScript 代码,则最好在单独的 ActionScript 源文件(扩展名为 .as 的文本文件)中组织这些代码。可以采用以下两种方式之一来设置 ActionScript 文件的结构,具体取决于您打算如何在应用程序中使用该文件。

  • 非结构化 ActionScript 代码:编写 ActionScript 代码行(包括语句或函数定义),就好像它们是直接在时间轴脚本或 MXML 文件中输入的一样。

    使用 ActionScript 中的 include 语句或 Flex MXML 中的 <fx:Script> 标签,可以访问以此方式编写的 ActionScript。ActionScript include 语句告知编译器包含位于指定位置且属于脚本中给定范围内的外部 ActionScript 文件的内容。结果就像代码是在这些位置直接输入的一样。在 MXML 语言中,使用带源属性的 <fx:Script> 标签识别编译器在应用程序中该点加载的外部 ActionScript。例如,以下标签加载名为 Box.as 的外部 ActionScript 文件:

    <fx:Script source="Box.as" />
  • ActionScript 类定义:定义一个 ActionScript 类,包含它的方法和属性。

    定义类后,通过创建类实例和使用其属性、方法和事件,您可以访问此类中的 ActionScript 代码。使用您自己的类与使用内置 ActionScript 类相同,都需要两个步骤:

    • 使用 import 语句指定该类的全名,以便 ActionScript 编译器知道可以在哪里找到它。例如,若要使用 ActionScript 中的 MovieClip 类,则使用该类的全名(包括包和类)将其导入:

      import flash.display.MovieClip;

      或者,您也可以导入包含该 MovieClip 类的包,这与针对该包中的每个类编写单独的 import 语句是等效的:

      import flash.display.*;

      顶级类是该规则的唯一例外,要在代码中使用某个类,必须导入该类。这些类不是在包中定义的。

    • 编写专门使用该类名称的代码。例如,将该类的一个变量声明为其数据类型,然后创建该类的一个实例并将其存储到此变量中。在 ActionScript 代码中使用某个类,实际上也就通知了编译器加载该类的定义。例如,假设给定一个名为 Box 的外部类,此语句会创建 Box 类的一个实例:

      var smallBox:Box = new Box(10,20);

      编译器第一次遇到 Box 类的引用时,会搜索可用的源代码来查找 Box 类定义。

选择合适的工具

可以使用其中一种工具(或同时配合使用多种工具)来编写和编辑 ActionScript 代码。

Flash Builder

Adobe Flash Builder 是创建使用 Flex 框架的项目或主要包含 ActionScript 代码的项目的首要工具。Flash Builder 还包括功能齐全的 ActionScript 编辑器、可视布局和 MXML 编辑功能。它可用于创建 Flex 项目或纯 ActionScript 项目。Flex 具有以下几个优点:包含一组内容丰富的预置用户界面控件、灵活的动态布局控件以及用于使用远程数据并将外部数据链接到用户界面元素的内置机制。然而,由于要求使用更多的代码提供这些功能,因此,与不使用 Flex 的项目相比,使用 Flex 的项目的 SWF 文件比较大。

如果您正在创建使用 Flex 的功能齐全、数据驱动的富 Internet 应用程序,请使用 Flash Builder。您可以用它来编辑 ActionScript 代码、编辑 MXML 代码以及直观地展示应用程序,利用这一个工具即可完成上述所有任务。

对于许多构建大量使用 ActionScript 的项目的 Flash Professional 用户来说,可以使用 Flash Professional 来创建可视资源,使用 Flash Builder 作为 ActionScript 代码的编辑器。

Flash Professional

Flash Professional 除了具有图形和动画制作功能外,还包括用来处理 ActionScript 代码的工具。代码可以附加到 FLA 文件中的元素中,也可以附加到外部纯 ActionScript 文件的元素中。Flash Professional 是包含重要动画或视频的项目的理想选择。当您想自己制作大部分图形资源时,这个工具很有用。使用 Flash Professional 开发 ActionScript 项目的另一个原因,是可以在同一应用程序中创建可视资源和编写代码。Flash Professional 还包括预置的用户界面组件。您可以使用这些组件来获得更小的 SWF 文件大小,以及利用可视工具获得项目的外观。

Flash Professional 包括两个编写 ActionScript 代码的工具:

  • “动作”面板:在 FLA 文件中工作时可用,该面板允许您编写附加到时间轴上的帧的 ActionScript 代码。

  • “脚本”窗口:“脚本”窗口是用于处理 ActionScript (.as) 代码文件的专用文本编辑器。

第三方 ActionScript 编辑器

由于 ActionScript (.as) 文件存储为简单的文本文件,因此任何能够编辑纯文本文件的程序都可以用来编写 ActionScript 文件。除了 Adobe 的 ActionScript 产品之外,还有几个拥有特定于 ActionScript 的功能的第三方文本编辑程序。您可以使用任何文本编辑程序来编写 MXML 文件或 ActionScript 类。然后,您可以使用 Flex SDK 从这些文件创建应用程序。项目可以使用 Flex,也可以是纯 ActionScript 应用程序。此外,一些开发人员使用 Flash Builder 或第三方 ActionScript 编辑器来编写 ActionScript 类,结合使用 Flash Professional 来创建图片内容。

选择使用第三方 ActionScript 编辑器的理由如下:

  • 您喜欢在单独的程序中编写 ActionScript 代码,在 Flash Professional 中设计可视元素。

  • 将某个应用程序用于非 ActionScript 编程(例如,创建 HTML 页或以其它编程语言构建应用程序)。您希望将该应用程序也用于 ActionScript 编码。

  • 您希望使用 Flex SDK 而不用 Flash Professional 和 Flash Builder 来创建纯 ActionScript 项目或 Flex 项目。

有一些提供特定于 ActionScript 的支持的代码编辑器值得注意,其中包括:

ActionScript 开发过程

无论您的 ActionScript 项目大还是小,按一定过程来设计和开发应用程序会提高工作效率。下面几个步骤说明了构建使用 ActionScript 3.0 的应用程序的基本开发过程:

  1. 设计应用程序。

    先以某种方式描述应用程序,然后再开始构建该应用程序。

  2. 编写 ActionScript 3.0 代码。

    您可以使用 Flash Professional、Flash Builder、Dreamweaver 或文本编辑器来创建 ActionScript 代码。

  3. 创建 Flash 或 Flex 项目来运行代码。

    在 Flash Professional 中,创建 FLA 文件、设置发布设置、向应用程序添加用户界面组件并引用 ActionScript 代码。在 Flex 中,定义应用程序、使用 MXML 添加用户界面组件并引用 ActionScript 代码。

  4. 发布和测试 ActionScript 应用程序。

    测试应用程序包括在开发环境中运行应用程序和确保应用程序各方面都符合您的预期。

不必按顺序执行这些步骤,或者说,不必等待一个步骤彻底完成后再去执行另一步骤。例如,您可以先设计应用程序的一个屏幕(步骤 1),然后创建图形、按钮等等(步骤 3),最后再编写 ActionScript 代码(步骤 2)并进行测试(步骤 4)。您也可以先设计应用程序的一部分,然后再一次添加一个按钮或一个界面元素,并为每个按钮或界面元素编写 ActionScript,在生成后对之进行测试。记住开发过程的这四个步骤很有用。然而,在实际开发中,根据需要在各阶段进行前后调整更为有效。