如何使用 ActionScript 示例

运行 ActionScript 3.0 代码示例是了解特定类和方法工作原理的最佳途径之一。您可以采用不同的方式使用示例,具体取决于您当前正在使用的设备或设定为目标的设备。

运行 Flash Professional 或 Flash Builder 的计算机
有关如何使用这些开发环境来运行 ActionScript 3.0 示例的信息,请参阅在 Flash Professional 中运行 ActionScript 3.0 示例在 Flash Builder 中运行 ActionScript 3.0 示例。使用 trace 语句和其他调试工具以增进您对代码示例工作原理的理解。

移动设备
可以在支持 Flash Player 10.1 和更高版本的移动设备上运行 ActionScript 3.0 代码示例。请参阅在移动设备上运行 ActionScript 3.0 示例。也可以使用 Flash Professional 或 Flash Builder 在您的计算机上运行这些示例。

电视设备
虽然不能在电视设备上运行这些示例,但是仍然可以通过在您的计算机上运行这些示例来了解它们。有关针对电视设备开发应用程序的信息,请参阅 Adobe Developer Connection 网站上的Flash Platform for TV

示例类型

ActionScript 3.0 代码示例的类型包括:

代码片断示例

代码片断示例类似于:

var x:int = 5; 
trace(x); // 5

代码片断仅包含说明一种想法的代码。它们通常不包含包语句或类语句。

基于类的示例

许多示例用于显示完整的 ActionScript 类的源代码。基于类的示例类似于:

package { 
    public class Example1 { 
        public function Example1():void { 
            var x:int = 5; 
            trace(x); //5 
        } 
    } 
}

基于类的示例的代码包括一个包语句、一个类声明和一个构造函数。

包含多个源文件的实用示例

《ActionScript 3.0 开发人员指南》中的许多主题都以实用示例来结束,这些示例显示了如何在实用的实际上下文中使用某些 ActionScript 功能。这些示例通常包含多个文件,包括:

  • 一个或多个 ActionScript 源文件

  • 用于 Flash Professional 的 .FLA 文件

  • 用于 Flash Builder 的一个或多个 MXML 文件

  • 示例应用程序使用的数据文件、图像文件、声音文件或其他资源(可选)。

实用示例通常以 ZIP 归档文件的形式提供。

开发人员指南在 ZIP 中提供的示例列表

Flash Professional CS5 和 Flex 4 的 ZIP 文件(从 www.adobe.com/go/learn_programmingAS3samples_flash_cn 上下载)包含以下示例:

Flash 开发人员中心和 Flex 开发人员中心的许多快速入门文章中也提供了实用示例。

在 Flash Professional 中运行 ActionScript 3.0 示例

要使用 Flash Professional 运行示例,请使用下列步骤之一(具体取决于示例类型)。

在 Flash Professional 中运行代码片断示例

要在 Flash Professional 中运行代码片断示例,请执行以下操作:

  1. 选择“文件”>“新建”。

  2. 在“新建文档”对话框中,选择“Flash 文档”,然后单击“确定”。

    将显示一个新的 Flash 窗口。

  3. 在“时间轴”面板中,单击第一个图层的第一帧。

  4. 在“动作”面板中,键入或粘贴代码片断示例。

  5. 选择“文件”>“保存”。为文件指定一个名称,然后单击“确定”。

  6. 要测试该示例,请选择“控制”>“测试影片”。

在 Flash Professional 中运行基于类的示例

要在 Flash Professional 中运行基于类的示例,请执行以下操作:

  1. 选择“文件”>“新建”。

  2. 在“新建文档”对话框中,选择“ActionScript 文件”,然后单击“确定”。此时将显示一个新的编辑器窗口。

  3. 复制基于类的示例代码并将其粘贴到该编辑器窗口。

    如果该类是程序的主文档类,则其必须扩展 MovieClip 类:

    import flash.display.MovieClip; 
    public class Example1 extends MovieClip{ 
    //... 
    }

    此外,请确保示例中引用的所有类使用 import 语句进行了声明。

  4. 选择“文件”>“保存”。为文件指定一个与示例中的类相同的名称(例如 ContextMenuExample.as)。
    注: 某些基于类的示例(如 flashx.textLayout.container.ContainerController 类示例)在包声明 (package flashx.textLayout.container.examples {) 中包含多个级别。对于这些示例,将文件保存在与包声明 (flashx/textLayout/container/examples) 匹配的子文件中,或删除包名称(以便 ActionScript 仅以 package { 开头),则可以从任意位置测试该文件。
  5. 选择“文件”>“新建”。

  6. 在“新建文档”对话框中,选择“Flash 文档 (ActionScript 3.0)”,然后单击“确定”。将显示一个新的 Flash 窗口。

  7. 在“属性”面板中的“文档类”字段中,输入示例类的名称,此名称应与刚刚保存的 ActionScript 源文件的名称相匹配(例如 ContextMenuExample)。

  8. 选择“文件”>“保存”。为 FLA 文件指定一个与示例中的类相同的名称(例如 ContextMenuExample.fla)。

  9. 要测试该示例,请选择“控制”>“测试影片”。

在 Flash Professional 中运行实用示例

实用示例通常以 ZIP 归档文件的形式提供。要使用 Flash Professional 运行实用示例,请执行以下操作:

  1. 将归档文件解压缩到所选的文件夹中。

  2. 在 Flash Professional 中,选择“文件”>“打开”。

  3. 浏览到将归档文件解压缩到的文件夹中。在该文件夹中选择 FLA 文件并单击“打开”。

  4. 要测试该示例,请选择“控制”>“测试影片”。

在 Flash Builder 中运行 ActionScript 3.0 示例

要使用 Flash Builder 运行示例,请使用下列步骤之一(具体取决于示例类型)。

在 Flash Builder 中运行代码片断示例

要在 Flash Builder 中运行代码片断示例,请执行以下操作:

  1. 创建一个新的 Flex 项目(选择“文件”>“新建”>“Flex 项目”),或在现有的 Flex 项目中创建一个新的 MXML 应用程序(选择“文件”>“新建”>“MXML 应用程序”)。为该项目或应用程序指定一个描述性名称(例如 ContextMenuExample)。

  2. 在生成的 MXML 文件中,添加一个 <mx:Script> 标签。

  3. 将代码片断示例的内容粘贴到 <mx:Script></mx:Script> 标签之间。保存 MXML 文件。

  4. 要运行该示例,请为主 MXML 文件选择“运行”>“运行”菜单选项(例如“运行”>“运行 ContextMenuExample”)。

在 Flash Builder 中运行基于类的示例

要在 Flash Builder 中运行基于类的示例,请执行以下操作:

  1. 选择“文件”>“新建”>“ActionScript 项目”。

  2. 将主类的名称(例如 ContextMenuExample)输入到“项目名称”字段中。为其他字段使用默认值(或根据特定环境对这些默认值进行更改)。单击“完成”创建项目和主 ActionScript 文件。

  3. 擦除任何从 ActionScript 文件生成的内容。将示例代码(包括包语句和 import 语句)粘贴到 ActionScript 文件并保存该文件。

    注: 某些基于类的示例(如 flashx.textLayout.container.ContainerController 类示例)在包声明 (package flashx.textLayout.container.examples {) 中包含多个级别。对于这些示例,将文件保存在与包声明 (flashx/textLayout/container/examples) 匹配的子文件中,或删除包名称(以便 ActionScript 仅以 package { 开头),则可以从任意位置测试该文件。
  4. 要运行该示例,请为主 ActionScript 类名称选择“运行”>“运行”菜单选项(例如“运行”>“运行 ContextMenuExample”)。

在 Flash Builder 中运行实用示例

实用示例通常以 ZIP 归档文件的形式提供。要使用 Flash Builder 运行实用示例,请执行以下操作:

  1. 将归档文件解压缩到所选的文件夹中。为该文件夹指定一个描述性名称(例如 ContextMenuExample)。

  2. 在 Flash Builder 中,选择“文件”>“新建 Flex 项目”。在“项目位置”部分,单击“浏览”并选择包含示例文件的文件夹。在“项目名称”字段中输入该文件夹的名称(例如 ContextMenuExample)。为其他字段使用默认值(或根据特定环境对这些默认值进行更改)。单击“下一步”继续。

  3. 在“输出”面板中单击“下一步”接受默认值。

  4. 在“源路径”面板中单击“主应用程序文件”字段旁的“浏览”按钮。从示例文件夹中选择主 MXML 示例文件。单击“完成”创建项目文件。

  5. 要运行该示例,请为主 MXML 文件选择“运行”>“运行”菜单选项(例如“运行”>“运行 ContextMenuExample”)。

在移动设备上运行 ActionScript 3.0 示例

您可以在支持 Flash Player 10.1 的移动设备上运行 ActionScript 3.0 代码示例。不过,通常,运行代码示例是为了了解特定类和方法是如何运作的。但在该案例中,是在非移动设备(例如桌面计算机)上运行示例的。在桌面计算机上,您可以使用 Flash Professional 或 Flash Builder 中的 trace 语句和其他调试工具来提高您对代码示例的理解。

如果希望在移动设备上运行示例,则可以将文件复制到该设备上或复制到 Web 服务器上。要将文件复制到该设备上并在浏览器中运行示例,请执行下列操作:

  1. 按照在 Flash Professional 中运行 ActionScript 3.0 示例在 Flash Builder 中运行 ActionScript 3.0 示例中的说明创建 SWF 文件。在 Flash Professional 中,应在选择“控制”>“测试影片”时创建 SWF 文件。在 Flash Builder 中,应在运行、调试或构建 Flash Builder 项目时创建 SWF 文件。

  2. 将 SWF 文件复制到移动设备上的一个目录中。使用随设备提供的软件复制文件。

  3. 在移动设备上的浏览器的地址栏中,输入 SWF 文件的 file:// URL。例如,输入 file:://applications/myExample.swf

要将文件复制到 Web 服务器上并在设备的浏览器中运行示例,请执行下列操作:

  1. 创建一个 SWF 文件和一个 HTML 文件。首先,请按在 Flash Professional 中运行 ActionScript 3.0 示例在 Flash Builder 中运行 ActionScript 3.0 示例中的说明操作。在 Flash Professional 中,选择“控制”>“测试影片”仅会创建 SWF 文件。要同时创建这两个文件,首先在“发布设置”对话框中的“格式”选项卡上同时选中 Flash 和 HTML。然后选择“文件”>“发布”以同时创建 HTML 和 SWF 文件。在 Flash Builder 中,应在运行、调试或构建 Flash Builder 项目时创建 SWF 文件和 HTML 文件。

  2. 将 SWF 文件和 HTML 文件复制到 Web 服务器中的一个目录下。

  3. 在移动设备上的浏览器的地址栏中,输入 HTML 文件的 HTTP 地址。例如,输入 http://www.myWebServer/examples/myExample.html

在移动设备上运行示例之前,请考虑下面的每个问题。

舞台大小

在移动设备上运行示例时的舞台要比在使用非移动设备时的舞台小得多。许多示例不要求特定的舞台大小。创建 SWF 文件时,应指定适合设备的舞台大小。例如,指定为 176 x 208 像素。

《ActionScript 3.0 开发指南》中的实用示例旨在阐明不同的 ActionScript 3.0 概念和类。这些示例的用户界面设计得很美观,而且在桌面计算机或便携式计算机上运作良好。虽然这些示例可以在移动设备上运行,但其舞台大小和用户界面设计不太适合小屏幕。Adobe 建议您在计算机上运行这些实用示例来了解 ActionScript,然后在您的移动应用程序中使用相关的代码片断。

文本字段而不是 trace 语句

在移动设备上运行示例时,无法显示示例的 trace 语句的输出。要查看输出,请创建 TextField 类的一个实例。然后,将 trace 语句的文本附加到该文本字段的 text 属性中。

您可以使用以下函数设置用于跟踪的文本字段:

function createTracingTextField(x:Number, y:Number, 
                                width:Number, height:Number):TextField { 
           
    var tracingTF:TextField = new TextField(); 
    tracingTF.x = x; 
    tracingTF.y = y; 
    tracingTF.width = width; 
    tracingTF.height = height; 
     
    // A border lets you more easily see the area the text field covers. 
    tracingTF.border = true; 
    // Left justifying means that the right side of the text field is automatically 
    // resized if a line of text is wider than the width of the text field. 
    // The bottom is also automatically resized if the number of lines of text 
    // exceed the length of the text field. 
    tracingTF.autoSize = TextFieldAutoSize.LEFT; 
     
    // Use a text size that works well on the device. 
    var myFormat:TextFormat = new TextFormat(); 
    myFormat.size = 18; 
    tracingTF.defaultTextFormat = myFormat; 
     
    addChild(tracingTF); 
    return tracingTF; 
}

例如,将此函数作为私有函数添加到文档类中。然后,在文档类的其他方法中,跟踪数据,代码类似以下内容:

var traceField:TextField = createTracingTextField(10, 10, 150, 150); 
// Use the newline character "\n" to force the text to the next line. 
traceField.appendText("data to trace\n"); 
traceField.appendText("more data to trace\n"); 
// Use the following line to clear the text field. 
traceField.appendText("");

appendText() 方法只接受一个值作为参数。该值是字符串(String 实例或字符串文本)。要输出非字符串变量的值,首先将该值转换为字符串。最简单的方法是调用对象的 toString() 方法:

var albumYear:int = 1999; 
traceField.appendText("albumYear = "); 
traceField.appendText(albumYear.toString());

文本大小

许多示例使用文本字段来帮助阐明概念。有时,调整文本字段中文本的大小可以提高移动设备上的可读性。例如,如果示例使用名为 myTextField 的文本字段实例,则可以使用下列代码更改其文本的大小:

// Use a text size that works well on the device. 
var myFormat:TextFormat = new TextFormat(); 
myFormat.size = 18; 
myTextField.defaultTextFormat = myFormat

捕获用户输入

移动操作系统和浏览器将捕获 SWF 内容没有接收到的一些用户输入事件。具体的行为要取决于操作系统和浏览器,但在移动设备上运行示例时,可能会导致意外行为。有关详细信息,请参阅KeyboardEvent 优先级

此外,许多示例的用户界面是针对桌面计算机或便携式计算机设计的。例如,《ActionScript 3.0 开发人员指南》中的大多数实用示例适合通过桌面观看。因此,有时在移动设备的屏幕上看不见整个舞台。能否显示浏览器中的内容具体还要取决于浏览器。而且,这些示例的设计初衷不是用来捕捉和处理滚动或平移事件。因此,有些示例的用户界面不适合在小型屏幕上运行。Adobe 建议您在计算机上运行这些示例来了解 ActionScript,然后在您的移动应用程序中使用相关的代码片断。

有关详细信息,请参阅平移和滚动显示对象

处理焦点

一些示例要求您将焦点置于一区域。通过将焦点置于一区域,您可以完成某些任务,例如,输入文本或选择按钮。要指定区域焦点,请使用移动设备的指针设备,例如笔针或您的手指。或者,使用移动设备的导航键指定区域焦点。要选择有焦点的按钮,请使用移动设备的 Select 键,就像使用计算机上的 Enter 一样。在某些设备上,敲两次按钮才能将其选中。

有关焦点的详细信息,请参阅管理焦点

处理鼠标事件

许多示例侦听鼠标事件。例如,在计算机上,当用户将鼠标移动到某个显示对象上方或在某个显示对象上单击鼠标按钮时会发生这些鼠标事件。在移动设备上,使用指针设备(如笔针或手指)的事件称为触摸事件。Flash Player 10.1 已将触摸事件映射到鼠标事件。这种映射可以确保在 Flash Player 10.1 之前开发的 SWF 内容可以继续正常使用。因此,当使用指针设备选择或拖动显示对象时示例可正常工作。

性能

移动设备的处理能力没有桌面设备强。一些使 CPU 高负载的示例在移动设备上的执行速度可能会很慢。例如,绘制 API 示例:算法可视化生成器中的示例每输入一个帧便会执行大量计算和绘图。在计算机上运行此示例可以阐示多种绘图 API。但是,由于移动设备的性能限制,此示例不适合在一些移动设备上运行。

有关移动设备上的性能的详细信息,请参阅优化 Flash Platform 的性能

最佳做法

这些示例不考虑开发适用于移动设备的应用程序的最佳做法。您需要特别注意移动设备在内存和处理能力方面的限制。同样,小型屏幕的用户界面的要求也与桌面显示不同。有关开发用于移动设备的应用程序的详细信息,请参阅优化 Flash Platform 的性能