在移动设备上运行 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 的性能