当前位置: 主页 > 平面设计 > Flash CS5操作指南(76)ActionScript 1.0 和 2.0 的除错

Flash CS5操作指南(76)ActionScript 1.0 和 2.0 的除错

  • 2021-11-23
  • 来源/作者: 本站原创    / 佚名    
  • 1 次浏览

ActionScript 1.0 2.0 的除错

ActionScript 1.0 2.0 Script 进行除错

SWF 档案在 Flash Player 中执行时,ActionScript 2.0 除错程序可协助您寻找 ActionScript 1.0 2.0 错误。使用 Flash ActionScript 1.0 2.0 进行除错时,您会在 Flash Player 除错程序版本中检视 SWF 档案,这个版本会随 Flash 自动安装。若要安装独立的 Flash Player 除错程序版本,请在 /Flash 安装目录/Players/Debug/ 目录中执行安装程序。

ActionScript 2.0 除错程序」会以阶层方式显示目前加载 Flash Player 中的影片片段清单。使用「ActionScript 2.0 除错程序」,您便可以在 SWF 档案播放时显示及修改变量及属性值,也可以使用断点停止 SWF 档案,并依行逐步执行ActionScript 程序代码。然后您可以再次回到 Script 中进行编辑,以便产生正确的结果。

C

A

D

B

上次更新2010/5/27 使用 FLASH PROFESSIONAL CS5

ActionScript

您可以调整「除错程序」面板区域的大小。当指针在每个区域之间发生变化时,将其拖曳以调整「显示」列表、「监控」清单和程序代码检视的大小。同时也可以单击垂直拆分栏,将「除错程序」的任一边展开到最大。

在启动「除错程序」后,其状态栏会显示档案的 URL 或本机路径,说明该档案是在测试环境中还是由远程位置执行,并显示影片片段显示列表的实时检视。在档案中新增或移除影片片段时,显示列表会立即反映变更。

备注:ActionScript 2.0 3.0 除错程序有很大的差别。如需关于 ActionScript 3.0 除错程序的详细信息,请参阅第321 页「ActionScript 3.0 的除错」。

测试影片命令和键盘控件当您使用「控制> 测试影片> 测试」命令,对实作键盘控件 (Tab 键定位、使用Key.addListener() 建立的键盘快捷方式等) SWF 档进行测试时,请在「测试影片」窗口中选取「控制> 停用键盘快捷方式」。选取这个选项可防止编写环境「撷取」按键动作,并让按键动作传递到播放程序。例如,在编写环境中,Control+U 会开启「偏好设定」对话框。如果 Script Control+U 指定给为屏幕文字加上底线的动作,则当您使用「测试影片」时,按 Control+U 便会开启「偏好设定」对话框,而非执行为文字加上底线的动作。若要将 Control + U 命令传递至播放程序,您必须在「测试影片」窗口中选取「控制 > 停用键盘快捷方式」。

重要事项:在英文系统上使用非英文的应用程序时,如果 SWF 档案路径的任何部分包含了无法以 MBCS 编码配置代表的字符,「测试影片」命令就会失败。例如,日文路径在英文系统上无效。

其它除错工具Flash 还提供下列除错工具:

                     「编译程序错误」面板,会显示 Flash 编译 Script 时所遇到的错误

                     「输出」面板,会显示运行时错误讯息以及变量和对象的列表

                     • trace() 语句,会将程序设计备注和表达式值传送到「输出」面板

                     • throw try..catch..finally 语句,可让您测试并响应 Script 内的运行时错误

 

对本机 SWF 档案进行除错

1 开启 FLA 文件。2 选取「除错> 影片除错> 除错」。这个命令会将 SWF 档案连同除错信息 (SWD 档案) 一起汇出。它会开启「除错程序」,并在测试环境中开启 SWF 档案。

SWD 档案是用来对 ActionScript 进行除错,档案中包含了可让您使用断点并逐步执行程序代码的信息。

针对远程 ActionScript 2.0 SWF 档进行除错

您可以使用 Flash Player 除错程序版本的单独、ActiveX 或插件版本,对远程 SWF 档进行除错,这个版本位于 Flash 安装目录/Players/Debug/ 目录。

若要允许对远程档案进行除错,启用「发布设定」中的除错功能。您还可以将档案连同除错密码一起发布,以确保只有受信任的使用者才能对它进行除错。

和在 JavaScript HTML 中一样,使用者也可以在 ActionScript 中检视客户端变量。为了要安全地储存变量,请将变量传送到服务器端应用程序,而非将其储存在档案中。不过,身为开发人员,您可能有其它不想要公开的商业秘密 ( 如影片片段结构),就可以使用除错密码来保护您的工作。

启用 SWF 档案的远程除错,并设定除错密码

1 储存 FLA 档案。

2 选取「档案 > 发布设定」。

上次更新2010/5/27 使用 FLASH PROFESSIONAL CS5

ActionScript

3 在「发布设定」对话框的「Flash」卷标上,选取「允许除错」。4 若要设定密码,可以在「密码」方块中输入密码。一旦设定密码后,没有密码的用户无法将信息下载到「除错程序」。5 关闭「发布设定」对话框,然后选取下列其中一个命令:

                     「除错> 影片除错> 除错」

                     「档案 > 汇出 > 汇出影片」

                     「档案 > 发布」

 

Flash 会建立一个扩展名为 .swd 的除错档案,并将它与 SWF 档案一起储存在同一个目录中。SWD 档案是用来对ActionScript 进行除错,档案中包含了可让您使用断点并逐步执行程序代码的信息。6 SWF 档与 SWD 档同时上传到网站服务器的相同目录中,或是保留在本机,以执行 localhost 的远程除错会话。如果 SWD 文件的所在目录与 SWF 文件不同,您还是可以进行远程除错,但是「除错程序」没有断点信息,所以无法逐步执行

程序代码。7 Flash 中,选取「除错 > 开始远程除错会话 > ActionScript 2.0」。Flash 会开启「ActionScript 2.0 除错程序」面板并等候 Flash Player 除错程序进行连接。这时候您有两分钟的时间可以启动

Flash Player 除错程序。如果超过两分钟,请重复此步骤。8 Flash Player 插件、ActiveX 控件,或是独立播放程序的除错程序版本中开启 SWF 文件。除错程序的独立播放程序位于 Flash 安装目录/Players/Debug/ 目录中。当除错播放程序连接到 Flash ActionScript 2.0 的「除错程序」面板时,就会开始除错会话。

从远程位置启动除错程序

1 如果 Flash 编写应用程序尚未开启,请现在开启它。2 选取「除错 > 开始远程除错会话 > ActionScript 2.0」。3 在浏览器或单独的 Flash Player 除错程序版本中,从远程位置开启已发布的 SWF

SWF 档案播放时并不会自动更新此清单,因此每当您要将信息传送到「输出」面板时,都必须选取「列出变量」命令。

1建立新的 FLA 文件。例如,您可将它命名为listvariables.fla

2在「动作」面板中加入下列 ActionScript 2.0

_global.myName = "Buster";
var myCatSays:String = "meow";
var myNum:Number = 313;
var myArray:Array = ["one", "two", "three"];

3选取「控制> 测试影片> 测试」。

4 在测试环境中,选取「除错 > 列出变量」。「输出」面板中会显示目前在 SWF 档案中的所有变量列表。下列范例显示从上面步骤 2 所列的程序代码中输出的变数:

Global Variables:

Variable _global.myName = "Buster"

Level #0:

Variable _level0.$version = "WIN 9,0,29,3"

Variable _level0.myCatSays = "meow"

Variable _level0.myNum = 313

Variable _level0.myArray = [object #1, class 'Array'] [0:"one",

1:"two",

2:"three"

]

设定和移除断点

断点可以让您将应用程序停在 ActionScript 的特定程序代码行。您可以使用断点,测试程序代码中可能发生问题的部分。例如,假设您撰写了一组if..else if 语句,但无法判断哪一个条件正在执行,那么您可以在语句前面加上断点,并在「除错程序」中逐一检查条件 ( 或逐步执行条件)

您可以在「动作」面板、Script 窗口或「除错程序」中设定断点。在「动作」面板中设定的断点会和 FLA 档案一起储存。在「除错程序」和 Script 窗口中设定的断点并不会储存在 FLA 档案中,而且只有在目前的除错会话中才有效。

重要事项:如果在「动作」面板或 Script 窗口中设定断点,并单击「自动格式化」,则会检查断点。如果「自动格式化」命令移除了空白行,则可能会将 ActionScript 移至另一行。在设定断点之前先自动格式化 Script 是个不错的作法。

在「除错程序」或 Script 窗口中设定断点,便能在这两个窗口当中检视断点,不过前提是这两个窗口中的 AS 档案路径必须相同。

请不要在批注行或空白行上设定断点,因为会忽略这一类的断点。

在动作面板或 Script 窗口中设定或移除断点

在除错会话期间,执行下列其中一项:

                     单击「Script」窗格的左边界。红点代表断点。

                     •              单击「除错选项按钮。

                     单击右键 (Windows) Control + 单击 (Macintosh) 以显示快显选单,然后选取「设定断点」、「移除断点」或「移除这个档案中的断点」 ( Script 窗口中,也可以选取「移除所有 AS 档案中的断点」)

                     Control+Shift+B (Windows) Command+Shift+B (Macintosh)

 

备注:在某些旧版的 Flash 中,单击「Script」窗格的左边界只会选取程序代码行,但现在则会增加或移除断点。若要选取程序代码行,可以使用 Control + 单击 (Windows) Command + 单击 (Macintosh)

上次更新2010/5/27 使用 FLASH PROFESSIONAL CS5

ActionScript

在除错程序中设定和移除断点

                     •              单击程序代码窗格的左边界。红点代表断点。

                     •              在程序代码检视的上方,单击「切换断点」或「移除全部断点」。

                     单击右键 (Windows) Control + 单击 (Macintosh) 以显示快显选单,然后选取「设定断点」、「移除断点」或「移除目前档案中的全部断点」。

 

Control+Shift+B (Windows) Command+Shift+B (Macintosh)

断点 XML 档案

Script 窗口中处理断点时,AsBreakpoints.xml 档案可让您储存断点信息。这个档案会写入下列位置的 Local Settings 目录:

Windows 硬盘\Documents and Settings\ 用户\Local Settings\Application Data\Adobe\Flash CS3\ 语言\Configuration\Debugger\

Macintosh Macintosh 硬盘/Users/ 用户/Library/Application Support/Adobe Flash CS3/Configuration/Debugger/

以下为 AsBreakpoints.xml 档案的范例:

<?xml version="1.0"?> <flash_breakpoints version="1.0">

<file name="c:\tmp\myscript.as">
<breakpoint line="10"></breakpoint>
<breakpoint line="8"></breakpoint>
<breakpoint line="6"></breakpoint>

</file>

<file name="c:\tmp\myotherscript.as">
<breakpoint line="11"></breakpoint>
<breakpoint line="7"></breakpoint>
<breakpoint line="4"></breakpoint>

</file> </flash_breakpoints>

XML 档案是由下列标签所组成:flash_breakpoints 这个节点有version 特质,这个特质会指定 XML 档案的版本,而 Flash 8 1.0 版。

file flash_breakpoints 的子节点。这个节点有name 特质,这个特质会指定含有断点的文件名。

breakpoint file 的子节点。这个节点有line 特质,这个特质会指定含有断点的行号。

当启动 Flash 时会读取 AsBreakpoints.xml 档案,而在离开时则会重新产生新的版本。AsBreakpoints.xml 是用来追踪介于开发会话之间的断点。

逐步执行程序代码行

设定 Script 中的断点,然后在「除错程序」中单击「继续」之后,您便可以逐步执行程序代码行,也就是控制「除错程序」在语句和函数内的移动方式。

 

例如,在下列的 ActionScript 2.0 程序代码中,假设断点是设定在myFunction() 程序行上的按钮内:

on(press){ myFunction(); }

当您单击该按钮时,Flash Player 便会到达断点并暂停下来。您现在可将「除错程序」带到文件中定义的myFunction() 第一行。同时也可继续逐步执行或离开函数。

上次更新2010/5/27 使用 FLASH PROFESSIONAL CS5

ActionScript

当您逐步执行程序代码行时,「变量」、「局部变量」、「属性」和「监控」卷标中的变量值和属性值会跟着变更。「除错程序」的程序代码检视左边的黄色箭头会指出「除错程序」停下的程序代码行。请使用下列位于程序代码检视上方的按钮来操作:

跳入

让「除错程序」进入函数。( 如果某一行没有包含用户定义的函数,「跳入」便会跳到下一行)

在下列范例中,如果将断点放在第 7 行,然后单击「跳入」,「除错程序」便会跳到第 2 行,而再单击「跳入」便会跳到第 3 行。

1 function myFunction() {
2 x = 0;
3 y = 0;
4 }
5
6 mover = 1;
7 myFunction();
8 mover = 0;

备注:这个代码段中的编号代表行号,并不属于程序代码的一部分。

跳出

让「除错程序」离开函数。如果目前停在用户定义的函数,这个按钮才有作用;它会将黄色箭头移至函数呼叫后

面的那一行。在上一个范例中,如果将断点放在第 3 行,然后单击「跳出」,「除错程序」便会移至第 8 行。在某一行 ( 不在用户定义的函数内) 单击「跳出」,与单击「继续」的作用一样。例如,假设您停在第 6 行,然后单击「跳出」,则播放程序会继续执行 Script,直到遇到断点为止。

略过

让「除错程序」不进入程序行。这个按钮会将黄色箭头移至 Script 中的下一行。在上一个范例中,如果停在第 7 行,然后单击「略过」,虽然仍会执行myFunction() 程序代码,但会直接进入到第 8 行,而不会逐步执行myFunction()

继续

将程序代码停留在播放程序停止处并继续播放,直至到达断点为止。

结束除错会话

停用「除错程序」,但继续在 Flash Player 中播放 SWF