关于 ActionScript 3.0 调试器

其他资源

下列资源提供了有关调试 ActionScript 3.0 的其它详细信息:

进入调试模式

开始调试会话的方式取决于正在处理的文件类型。调试会话期间,Animate 遇到断点或运行时错误时将中断执行 ActionScript。

Animate 启动调试会话时,它会在为该会话导出的 SWF 文件中添加特定的信息。此信息允许调试器提供代码中遇到错误的特定行号。

您可以将此特殊调试信息包含在所有从“发布”设置中通过特定 FLA 文件创建的 SWF 文件中。 这将允许您调试 SWF 文件,即使您并未显式启动调试会话。 包括调试信息后 SWF 文件将稍稍变大一些。

选择默认调试环境

  • 选择“调试”>“调试影片”,然后选择下列选项之一:

    • Animate

    • AIR Debug Launcher(台式机)

    • AIR Debug Launcher(移动设备)

    • 在通过 USB 的设备上(仅限 CS5.5)

    所有调试会话都将在您选择的环境中发生。您可以随时更改默认环境。

从 FLA 文件开始调试

  1. 选择“调试”>“调试”

    (CS6 和更低版本)选择“调试”>“调试影片”>“调试”

从 ActionScript 3.0 AS 文件开始调试

  1. 在“脚本”窗口中打开 ActionScript 文件后,从“脚本”窗口顶部的“目标”菜单选择用来编译 ActionScript 文件的 FLA 文件。FLA 文件必须也在 Animate 中打开才能显示在此菜单中。

  2. 选择“调试”>“调试”

    (CS6 和更低版本)选择“调试”>“调试影片”>“调试”

向所有通过 FLA 文件创建的 SWF 文件添加调试信息

  1. FLA 文件打开时,选择“文件”>“发布设置”。

  2. 在“发布设置”对话框中,单击“”选项卡 (CS5) 或“”类别 (CS5.5)。

  3. 选择“允许调试”。

退出调试模式

  1. 单击“调试控制台”中的“结束调试会话”。

设置和删除断点

向 ActionScript 代码中添加断点以中断代码执行。执行被中断之后,可以逐行跟踪并执行代码,查看 ActionScript 的不同部分,查看变量和表达式的值以及编辑变量值。

注意:

断点不能添加到 ASC (ActionScript for Communication) 或 JSFL (Flash JavaScript) 文件。

设置断点

  1. 在动作面板或“脚本”窗口中,单击希望显示断点的代码行的左边界。

删除断点

  1. 在动作面板或“脚本”窗口中,单击要删除的断点。

跟踪代码行

当 ActionScript 执行在断点处中断或由于运行时错误而中断后,您可以逐行对代码进行单步调试。您可以选择跳入或跳过函数调用。也可以选择继续执行代码而不跳入或跳过。

逐行跳入代码

  1. 单击“调试控制台”中的“跳入”按钮。

跳过函数调用

  1. 单击“调试控制台”中的“跳过”按钮。

跳出函数调用

  1. 单击“调试控制台”中的“跳出”按钮。

恢复正常代码执行

  1. 单击“调试控制台”中的“继续”按钮。

显示和检查调用堆栈中的脚本

当调试器中代码执行停止时,可以在调试控制台中查看调用堆栈并显示包含调用堆栈中函数的脚本。调用堆栈显示当前等待结束执行的嵌套函数调用的列表。

您可以查看包含每个函数的单个脚本。

  1. 在“调试控制台”面板中双击调用堆栈中的脚本名称。

显示和修改变量值

在“变量”面板中查看和编辑变量和属性的值。

查看变量值

  1. 在“变量”面板中,从“面板”菜单中选择要显示的变量类型。

    • “显示常数”将显示常数值(具有固定值的变量)。

    • “显示静态”将显示属于类的变量,而不是类的实例。

    • “显示不可访问的成员变量”将显示其他类或命名空间不能访问的变量。 这包括命名空间的受保护、私有或内部变量。

    • “显示其他十六进制显示”将在显示十进制值的地方显示十六进制值。 这主要对颜色值有用。 从 0 到 9 的十进制值不显示十六进制值。

    • “显示限定名”将显示同时具有包名称和类名称的变量类型。

  2. 展开 FLA 对象结构的树视图,直到您看到要查看的变量。

编辑变量值

  1. 在“变量”面板中,双击变量值。

  2. 输入新的变量值,然后按 Enter。 新值在接下来的代码执行中使用。

控制编译器警告

控制 ActionScript 编译器在“编译器错误”面板中生成的编译器警告的类型。编译器报告错误时,双击该错误可定位到导致该错误发生的代码行。

  1. 选择“文件”>“发布设置”。
  2. 单击“Animate”。

  3. 单击“ActionScript 设置”按钮。
  4. 从“错误”选项中选择:
    • “严格模式”将警报报告为错误,意味着如果存在这些错误,编译将会失效。
    • “警告模式”将报告多余警告,这些警告对将 ActionScript 2.0 代码更新到 ActionScript 3.0 时发现不兼容现象非常有用。

Animate 在 ActionScript 代码中遇到错误时,无论是在编译或执行期间,都将在“编译器错误”面板中报告错误。从“编译器错误”面板中定位到导致错误的代码行。

  1. 在“编译器错误”面板中双击错误。

调试远程 ActionScript 3.0 SWF 文件

利用 ActionScript 3.0,通过使用 Debug Flash Player(位于 Animate 安装目录/Players/Debug/ 目录中) 的独立版本、ActiveX 版本或者插件版本可以调试远程 SWF 文件。但是,在 ActionScript 3.0 调试器中,远程调试限于和 Animate 创作应用程序位于同一本地主机上,并且正在独立调试播放器、ActiveX 控件或插件中播放的文件。

若要允许远程调试文件,请在“发布设置”中启用“调试”。 也可以发布带有调试密码的文件以确保只有可信用户才能调试。

在 JavaScript 或 HTML 中时,用户可以在 ActionScript 中查看客户端变量。 若要安全地存储变量,请将它们发送到服务器端应用程序,而不要将它们存储在文件中。 然而,作为开发人员,您可能有其他一些不想泄漏出去的商业机密,比如影片剪辑结构。 您可以使用调试密码来保护您的工作。

启用 SWF 文件的远程调试并设置调试密码

在 ActionScript 3.0 FLA 文件中,不能调试帧脚本中的代码。只有外部 AS 文件中的代码可以使用 ActionScript 3.0 调试器调试。

  1. 打开 FLA 文件。

  2. 选择“文件”>“发布设置”。

  3. 在“发布设置”对话框中,单击“”选项卡 (CS5) 或“”类别 (CS5.5),然后选择“允许调试”。

  4. 关闭“发布设置”对话框,然后选择下列命令之一:

    • “文件”>“导出”>“导出影片”

    • “文件”>“发布”

  5. 将 SWF 文件留在本地计算机上以在本地主机上执行远程调试会话,或者将其上载到 Web 服务器。

    SWF 文件不包含断点信息,所以如果将文件上载到远程服务器,将无法跟踪代码。 请使用本地主机执行此任务。

  6. 在 Animate 中,选择“调试”>“开始远程调试会话”>“ActionScript 3.0”。

    Animate 会打开 ActionScript 3.0 调试器,等待连接调试版 Flash Player。您有 2 分钟时间用来启动 debug Flash Player。 如果超过 2 分钟,请重复此步骤。

  7. 在调试版本的 Flash Player 插件、ActiveX 控件或独立播放器中打开 SWF 文件。调试独立播放器位于 Animate 安装目录/Players/Debug/ 目录中。不要连接其他计算机上的文件,因为这样调试器将无法接收任何断点信息。

    当调试播放器连接到 ActionScript 3.0 调试器面板时,调试会话开始。

    注意:

    对于 AIR 3.4,如果选择“默认”网络接口,则远程调试不起作用。而是应选择需要提供系统的网络接口名称和 IP 地址的选项。

从远程位置激活调试器

  1. 如果 Animate 创作应用程序尚未打开,则将其打开。

  2. 选择“调试”>“开始远程调试会话”>“ActionScript 3.0”。

  3. 在浏览器中或在独立播放器的调试器版本中,从远程位置打开已发布的 SWF 文件。

    如果没有出现“远程调试”对话框,在 SWF 文件中右键单击 (Windows) 或者按住 Control 单击 (Macintosh) 以显示上下文菜单,然后选择“调试器”。

  4. 在“远程调试”对话框中,选择“本地主机”,然后选择要打开的文件。

    在调试器中会出现 SWF 文件的显示列表。 如果没有播放 SWF 文件,调试器可能已暂停,此时单击“继续”可以启动调试器。

本产品经 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License 许可  Twitter™ 与 Facebook 中的内容不在 Creative Commons 的条款约束之下。

法律声明   |   在线隐私策略