《第3章 ActionScript编程初步.docx》由会员分享,可在线阅读,更多相关《第3章 ActionScript编程初步.docx(11页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第3章 ActionScript编程初步 计算机程序是由命令、函数、运算符、条件和循环等结构组成的。命令是为计算机下达的一系列指令,函数执行计算和返回值,通过运算符将若干数据以某种特定的方式结合起来,条件测试一个或多个值以返回一个为true或false的布尔值,循环结构使得程序能够重复执行一系列相同的指令。 变量是存储数据的容器,变量有变量名和变量值。 编程是一项需要耐心的工作,首先你必须理解要用程序解决什么样的问题,然后需要将这个问题分解成若干步骤,将每个步骤再分成更小的步骤,直到每个步骤都小得很容易解决了为止。 程序编写好后,可能会存在许多漏洞或缺陷,所以你还需要对程序进行调试,直到程序能
2、正确运行为止。 3.1 程序基本结构 计算机程序是由命令、函数、运算符、条件和循环等结构组成的。 3.1.1 命令、函数和运算符 在此之前,我们都是用关键字来描述ActionScript中的元素,如关键字gotoAndPlay,它也是一个命令。 命令是ActionScript中用来告诉Flash所要执行的特定操作的元素。之所以称之为命令,就是因为它将被严格的遵照执行,如果要用gotoAndPlay跳转到一个不存在的帧,这样的命令就不能被执行。 命令是程序中最基本的元素,在Flash中如果不使用命令,几乎不能进行任何操作。从本书中你将学到很多命令。 函数是ActionScript中用来执行计算和
3、返回结果的元素。例如,一个特定的函数可以计算并返回一个指定数的平方根。 命令和函数都可以使用参数。参数就是传递给命令或函数的一个值。如gotoAndPlay命令就至少需要一个帧编号或帧标签作为参数。求平方根的函数也需要一个数值作为参数。 与命令和函数不同的是运算符,它们主要是一些符号,而不是字母。例如,+运算符执行两数相加的操作。 在ActionScript程序中你将会用到大量的命令、函数和运算符。 3.1.2 变量 要编写复杂的计算机程序往往需要存储很多的信息。有时你可能只需要存储很短暂的时间,例如,如果需要重复执行10次相同的命令,你就需要对命令的执行次数进行记数,直到满10次为止。 所有
4、的编程语言都使用变量来存储信息。一个变量由两部分构成:变量名和变量的值。 1变量名 变量名通常是一个单词或几个单词构成的字符串,也可以是一个字母。总的来说,你需要尽可能地为变量指定一个有意义的名称。 例如,如果你要使用变量存储用户的姓名,用userName作为变量名将是一个很好的选择。如果你使用n作变量名,似乎太短了一点;如果使用name,又可能与影片中其他对象的名称相混淆。 在ActionScript中为变量指定变量名时已经形成了一种不成文的规范,就是变量名通常以小写字母开头,当一个新的单词出现时,大写这个新单词的第一个字母,如userName,长一点的例子如currentUserFirst
5、Name。 变量名中不允许出现空格,也不允许出现特殊符号,但是可以使用数字。 2变量类型 你可以用变量存储不同类型的数据。数字是最简单的变量类型。 你可以在变量中存储两种不同类型的数字:整数和浮点数。整数没有小数点部分,如117、-3685都是整数。浮点数有小数点部分,如0.1、532.23、-3.7都是浮点数。 你也可以在变量中存储字符串,字符串就是由字符组成的序列,可以是一个或多个字符,甚至可以没有字符,即空字符串。 使用引号定义字符串,使其与其他变量相区别。如7是一个数字,而“7”则是一个字符串,这个字符串由一个字符7组成。 在别的编程语言中,你可能需要在程序的开头部分提前定义程序中要用
6、到的变量的具体类型,但在ActionScript中不需要预先声明变量,你只需要直接使用它们,Flash在第一次遇到它们的时候会自动为它们创建变量。 另外,变量所能存放的数据类型也没有严格的限定,某一变量可以在一个位置存放字符串,而在另一个位置存放数字。 这种灵活性并不是经常用得到,但是它可以让程序员们少一些不必要的担心。 ActionScript程序员不必担心的另一个问题是废弃变量的空间回收问题。即当你不再需要使用一个变量的时候,你可能需要收回该变量占用的存储空间。大多数现代的计算机语言如ActionScript都可以自动回收空间,所以你也不必担心了。 除数字和字符串类型外还有一些别的变量数据
7、类型。例如,数组可以存放一系列的数据而非单个数据。 3.1.3 条件 程序本身并不能作出抽象的决定,但是它可以获取数据,并对数据进行分析比较,然后根据分析结果执行不同的任务。 例如,你想要检查用户输入的名字并确定其至少包含3个字母。程序需要做的事情就是对用户名作出判断,如果是3个或更多的字母,就执行一种操作;如果不足3个字母则执行另一种操作。 这里,作出一个决定需要两步,第一步是检查条件是否满足,如果名称符合3个字母长度,条件满足,我们称条件的值为真(true);否则条件不满足,我们称条件的值为假(false)。所有的条件都必须是两个值中的一种,要么为真,要么为假。要么为真(true)要么为假
8、(false)的数据类型称为布尔(boolean)类型。 决定的第二步是根据条件为true或为false的情况选择要执行哪些代码。有时只有一个选项,当条件为true时执行该选项;如果条件为false,将不执行任何代码。有时会有两个相对的选项,条件为true和false时分别执行不同的代码。 例如,你想让计算机根据一个变量的值是1、2或3执行3种不同的任务,可以像这样表达: 如果变量的值等于1,执行命令1 如果变量的值等于2,执行命令2 如果变量的值等于3,执行命令3 条件总是建立在比较之上的,你可以比较两个变量的值以判断它们是否相等;或者判断一个是否大于另一个,或是小于另一个。如果变量是字符串
9、类型,你可以比较它们按字典顺序排列时的先后次序。 3.1.4 循环 与人不同,计算机很适合做重复性的工作。一件事情仅仅重复几次就可能使人厌倦,但是让计算机重复执行成千上万次它都照样有耐心。 循环在每种编程语言中都是一个很重要的部分,ActionScript也不例外。你可以指定一条指令执行给定的次数,或者令其执行到满足指定的条件为止。 事实上,条件是循环中的重要组成部分,整个循环只需要一个开始点,一个结束点,再加上一个标志循环结束的条件。 例如,你需要循环10次,使用一个变量从0开始计数。每循环一次,计数加1。当计数变量达到10时,循环结束,程序继续执行循环以后的部分。下面的内容代表了一个标准的
10、循环结构: (1)循环以前的命令。 (2)循环开始,计数变量置0。 (3)循环中的命令。 (4)计数变量加1。 (5)如果计数变量小于10,执行步骤(3)。 (6)循环以后的命令。 在上面的步骤中,步骤(1)只执行1次,步骤(2)表示循环的开始,步骤(3)、(4)、(5)都将执行10次,当循环结束后,执行步骤(6)及以后的部分。 3.2 ActionScript之一角 当你在编写自己的脚本时,你会用到各种各样不同的关键字和符号,为便于你熟悉脚本的构成,下面先来看一个真实的例子。 这是一段作用于按钮的脚本,当用户单击按钮时(确切地说是松开按下的按钮时)执行它。其中没有包含特殊的函数,但是它体现了
11、ActionScript的主要结构。 on (release) var myNumber = 7; var myString = Flash MX ActionScript; for (var i=0; imyNumber; i+) trace(i); if (i + 3 = 8) trace(myString); 脚本的第1行表明当用户松开按下的按钮时执行大括号中的语句。on (release)结构只能用于按钮,其他相关的几种用法如on(press)、on(rollOver)、on(rollout)、on(dragOver)、on(dragOut)等。 第1行末尾的大括号表示一段相对独立的代
12、码段的开始。从到与之相对的之间的代码是一个整体,它们都从属于按钮的release事件。 请注意,大括号之后的代码较之第1行有一个制表符(按一次Tab键)的缩进,其后的每行代码与之具有相同的缩进程度,直到一个新的大括号开始,在新大括号后的语句会比前面的语句增加一个制表符的缩进,以此类推,这种特点与其他编程语言是类似的。Flash会自动将你添加的代码设置成正确的缩进样式。 代码的第1行创建一个名为myNumber的局部变量,并将该变量的值设置为7。下面一行将字符串Flash MX ActionScript赋给另一个变量myString。稍后我们会更详细的介绍变量的两种类型:局部变量和全局变量。 分
13、号;表示一条指令的结束,在每个完整指令的末尾都应该添加分号。 for代表一个循环结构的开始,此处的循环执行7(myNumber)次,即令i从0递增到6,每递增1便执行一次循环结构中的语句。for后面大括号中的部分即为循环体。 命令trace将它后面括号中的内容发送到输出窗口。我们将在下一部分详细介绍输出窗口。 if是一种条件结构,它测试后面的内容i + 3 = 8是否为true,如果为true,则执行后面的语句;否则跳过该代码段。 if结构中只有一个trace命令,它将变量myString的值发送到输出窗口。 上例脚本以三个反向大括号结束,第1个表示if语句的结束,第2个表示for语句的结束,
14、第3个表示整个on(press)段结束。 3.3 输出窗口 输出窗口是只在测试Flash影片时出现的一个编程工具,Flash用它来显示出错信息或其他的一些重要信息。用户可以用ActionScript中的trace命令自定义要发送到输出窗口中的信息。 输出窗口在测试程序时非常有用。你可以使用trace命令在输出窗口中显示变量的值或者哪一部分ActionScript正在执行。 输出窗口还可以帮助你学习ActionScript。你可以编写一些小程序,将信息发送到输出窗口,这将帮助你看到程序的运行结果。 要想熟悉输出窗口,最好的方法就是多使用它。下面就来编写一段小程序,将信息发送到输出窗口。 (1)启
15、动Flash MX。 (2)选中时间轴的第1帧,打开第1帧的动作面板。 (3)使用右上角的菜单将动作面板切换到专家模式。 (4)在脚本编辑区单击鼠标,将鼠标光标定位到脚本编辑区中。 (5)在动作面板中输入如下ActionScript: trace(I like ActionScript!); (6)按Ctrl+Enter键测试影片,因为舞台中没有任何图像,所以你将看到一个空白窗口,同时出现一个输出窗口,窗口中显示:I like ActionScript!如图3-2所示。 输出窗口显示了trace命令中的信息 和动作面板一样,输出窗口右上角也有一个下拉菜单,其中包含了拷贝、清除、查找、保存到文件
16、以及打印等命令。下拉菜单的最后一项命令是“调试级别”,你可以选择“错误”、“警告”、“详细”中的一种,如果选择“无”,将不显示任何信息。 3.4 ActionScript基本语法 前面介绍了程序的基本结构,下面要讲解ActionScript中的基本语法。 3.4.1 变量 1设置变量 在ActionScript中使用变量的方法很简单,你只需要为变量名分配一个值,例如: myVariable = 7; 该例在创建名为myVariable的变量的同时将其值设置为7,你可以为变量任意取一个名字,而并不需要使用本例中的myVariable。 可以使用输出窗口查看变量的值,如在一个空白影片第一帧的动作面
17、板中添加如下ActionScript: x = 7; trace(x); 首先,数字7被存储在变量x中;然后,使用trace命令将变量x的值发送到输出窗口。影片播放时,输出窗口中会显示数字7。 2全局变量 根据变量作用的范围不同可将变量分为全局变量和局部变量。 全局变量就是可以作用在整个Flash影片的所有深度级别上的变量。你可以在某一帧中设置它,并在其他帧中使用和改变它的值。 你不需要使用特别的方法创建全局变量,像前一个例子一样,直接设置并使用它,它自动成为一个全局变量。 在许多编程语言中,全局变量可以在任何地方使用。Flash影片使用一个概念叫层级(level)。整修影片的主时间轴作为根(
18、root)层级,影片剪辑是时间轴中的小影片。影片剪辑中的图形和脚本要比根层级低一个级别。影片剪辑不能直接使用根层级中的全局变量。 3局部变量 局部变量只能存在于当前脚本中,而在其他帧中它将不再存在。你可以在使用同一个变量名在不同的帧中创建不同的局部变量,它们之间将互不影响。 局部变量可用来创建模块化的代码。当前脚本执行完时,局部变量将被从内存中删除;而全局变量将保留到影片结束。 创建局部变量需要使用关键字var。例如,下面的ActionScript创建值为15的局部变量myLocalVariable: myLocalVariable = 15; 使用var创建局部变量后,在当前代码中就不再需要
19、使用关键字var了。例如,下面的代码创建值为20的局部变量myLocalVariable,然后将其值改为8,再发送到输出窗口中。 var myLocalVariable = 20; myLocalVariable = 8; trace(myLocalVariable); 如果没有特殊的需要,请尽量使用局部变量。 3.4.2 比较 在ActionScript中比较两个事物是很容易的,要进行比较可以使用标准的数学符号,如=、等。 1相等 在ActionScript中用比较运算符对两个值进行比较。 要比较两个值是否相等,可以使用连在一起的两个等于符号(=)。单个等于符号(=)是用来为变量分配值的,并
20、不是比较运算符。 如果要比较变量x的值是否等于7,就可以使用=符号,如下所示: var x = 7; trace(x = 7); 以上代码使用=符号将变量x设置为7,然后使用=符号对x和7进行比较。 测试这两行代码,输出窗口将显示“true”。如果将x设置为8或其他数,则会显示“false”。 =符号还可以用来比较两个字符串。如下所示: var myString = Hello ActionScript.; trace(myString = Hello ActionScript.); trace(myString = hello ActionScript.); 程序运行时,你将在输出窗口中看到
21、一个“true”和一个“false”,因为在字符串中字母是要区分大小写的。 如果你要比较两个值是否不等,可以使用!=符号,它的意思是“不等于”。如下所示: var a = 7; trace(a != 9); trace(a != 7); 第1个trace语句显示信息“true”,因为a确实不等于9;第2个trace语句显示信息“false”。 2小于和大于 使用标准的数学符号比较两数是否成小于或大于关系。举例如下: var a = 9; trace(a 5); trace(a 1); 你将从输出窗口中看到“true”、“true”和“false”。 符号=用于比较一个数是否小于等于或大于等于另
22、一个数,如下所示: var a = 9; trace(a = 9); trace(a = 7); 以上3个trace语句都将显示“true”。 3.4.3 运算 通过运算可以改变变量的值。分别使用算术运算符+、-、*、/执行加、减、乘、除操作。 如下所示的ActionScript将值为9的变量x加上一个数7: var x = 9; x = x + 7; trace(x); 运算结果为16。 在ActionScript中执行运算可以使用一些简写方法,如+=运算符将其前后的值相加并将结果赋给它前面的变量。前面的脚本也可以写成如下的形式: var x = 9; x += 7; trace(x); +
23、运算符与+=运算符类似,但它每执行一次,变量的值只增加1,如下面的例子: var x = 9; x+; trace(x); 结果显示10。再看下面的例子: var x = 9; trace(x+); trace(x); 结果是9和10。为什么呢?因为第1个trace语句输出x的当前值9,然后将x加1,输出x的新值10。 再试一下下面的脚本: var x = 9; trace(+x); trace(x); 这次的结果为两个10。因为将+运算符置于变量前面,将先执行运算再返回变量的值。 同理,-运算符执行递减操作,-=运算符在变量当前值的基础上减去一个数,*=运算符在变量当前值的基础上乘上一个数,
24、/=运算符在变量当前值的基础上除以一个数。 3.4.4 条件 既然现在你已经知道如何比较两个变量,你就可以将比较结果作为执行某些语句的条件。 1if语句 if语句使你可以使用比较结果控制Flash影片的播放。如下所示的语句判断X是否等于9,如果比较结果为true,则让影片跳到第15帧: if (x = 9) gotoAndPlay(15); if语句以if开始,其后紧跟一个比较表达式,比较表达式通常用一对括号括起来,再后面即是用大括号括起来当比较结果为true时要执行的代码。 2else 对if语句可以进行扩展,使用else执行条件不成立(比较表达式为false)时的代码,如下所示: if (
25、x = 9) gotoAndPlay(15); else gotoAndPlay(16); 你也可以使用else if语句将if语句更推进一步,如下所示: if (x = 9) gotoAndPlay(15); else if (x = 10) gotoAndPlay(16); else if (x = 11) gotoAndPlay(20); else gotoAndPlay(25); 你可以让if语句想要多长就有多长,你也可以使用else if语句对别的变量进行比较,如下所示: if (x = 9) gotoAndPlay(15); else if (y20) gotoAndPlay(16
26、); else gotoAndPlay(25); 3复合比较 你可以在一个if语句中对几个比较表达式的值进行判断,比如说你希望在x为9并且y为20时跳转到第10帧,可以使用如下所示的脚本: if (x = 9) & (y = 20) gotoAndPlay(10); 逻辑与运算符&将两个比较表达式联接在一起成为一个复合表达式,当两个表达式的值都为true时复合表达式的值才为true。每个比较表达式都需要添加独立的括号以便Flash能正确识别。在Flash的早期版本中使用and执行逻辑与运算,现在已推荐不使用。 你也可以使用逻辑或运算符|将两个比较表达式联接在一起成为一个复合表达式,只要有一个表
27、达式的值为true,复合表达式的值就为true。如下所示: if (x = 7) | (y = 15) gotoAndPlay(20); 在该脚本中,只要x为7或者y为15,或者两者都成立,结果都是跳转到第20帧。只有当两者都不成立时,才不会执行gotoAndPlay命令。在Flash的早期版本中使用or执行逻辑或运算,现在已推荐不使用。 3.4.5 循环 ActionScript中的循环要比if语句稍微复杂一点。它的循环结构与C语言中的循环结构几乎是一致的。 1for循环结构 for结构是主要的循环结构,其样式如下所示: for (var i = 0; i10; i+) trace(i);
28、运行这段代码,随着局部变量I的改变,输出窗口中将显示数字09。 for结构中关键字for后面的括号中包含3个部分,它们之间用分号隔开。 第1部分声明一个局部变量,在本例中创建了一个局部变量i并将其设置为0。该部分只在循环体开始执行之前执行一次。 第2部分作为一个供测试的条件,在这里,测试i是否小于10。只要满足该条件,就会反复执行循环体。循环开始的时候i等于0,它是小于10的,所以循环得以执行。 第3部分是一个运算表达式,每完成一次循环都将执行该表达式一次。在这里,i每次递增1,然后转到第2部分对i的新值进行判断。 大括号中的部分是该循环的循环体,每执行一次循环都将执行其中的所有命令。我们来看
29、看计算机是如何处理这个循环的。 声明变量i并将其值设为0; 判断条件i10,结果为true,开始执行循环体; 现在i值为0,trace命令将i值发送到输出窗口,输出窗口显示0; 第1次循环结束,回到循环开始处,i在原来的基础上递增1,i值变为1; 判断条件i10,结果为true,继续执行循环体; trace命令将i的值1发送到输出窗口; 然后i再加1,这样循环下去直到执行完10次循环; 回到循环开始处,i在原来的基础上递增1,i值变为10; 判断条件i10,结果为false,结束循环,开始执行for结构后面的代码。 2其他形式的循环结构 for循环是最常用的一种循环结构,除for循环之外还有w
30、hile循环和dowhile循环。 while循环的例子如下所示: i = 0; while (i != 10) trace(i); i+; while循环看起来似乎要比for循环简单一些,从结构上看甚至与if语句还有一些相似。只要while后面括号中的条件成立,循环就会一直进行下去,所以在while循环体中需要有改变条件的语句,以使条件最终能够为false,完成循环,如上例中的i+。 与while循环相似的是dowhile循环,如下所示: i = 0; do trace(i); i+; while (i != 10); 除了测试条件的位置不同,while循环和dowhile循环几乎是一样的。
31、while循环在循环体之前测试条件,dowhile循环在循环体之后测试条件,所以dowhile循环至少要执行一次,而while循环有可能一次也不执行。 3跳出循环 所有的循环结构都可以使用两个命令改变循环的执行流程,一个命令是break,另一个命令是continue。break命令终止循环,并跳到循环结构后面的语句处执行;continue命令终止本轮循环但不跳出循环,进而执行下一轮循环。 使用break和continue的例子都比较复杂,另外,还有一种特殊的forin循环结构,在用到它们的时候我们再详细讲解。 3.4.6 函数 到现在为止,我们都是将脚本放在影片的第1帧中。如果程序相当复杂,再
32、放在同一帧中就使脚本显得太庞大了。 函数使你可以组织需重用的代码,并放在时间轴中,例如: function myFunction(myNum) var newNum = myNum+5; return newNum; 函数以关键字function开头,function后面是函数名。与变量名相似,你可以指定自己的函数名,最好将函数名取得有意义一些。 函数名后面的括号容纳该函数的参数,所谓参数也是一个变量,它的值在调用该函数时予以指定。一个函数可以有若干参数,也可以没有参数。无论有没有参数,函数名后都应紧跟一对括号。 大括号中的部分是函数体,在函数体中创建了一个局部变量newNum,将myNum加
33、5的结果设置为newNum的值。如果你将10作为参数传递给该函数,newNum的值就是15。 return命令仅用于函数中,使用return结束一个函数并返回函数值。此处,newNum是用return命令返回的函数值。 要使用函数,就需要调用它,如下所示: var a = myFunction(7); 该语句创建一个新的局部变量a,将7作为参数调用函数myFunction,并将函数返回的结果作为变量a的值。 被调用的函数开始运行,创建一个局部变量myNum,将7作为myNum的值,然后执行函数体内的代码,使用return命令将newNum的值12返回给函数的调用者。这时,a的值变为12。 函数
34、最大的作用体现在它可以重复使用。如下所示的3行代码产生3个不同的结果: trace(myFunction(3); trace(myFunction(6); trace(myFunction(8); 运行以上代码,你将得到结果8、11和13。 使用函数还有一个好处就是可以只改变函数中的一处,从而影响所有调用该函数的命令。例如,将函数myFunction中的var newNum = myNum+5改成var newNum = myNum+7,上面3个调用该函数的命令的结果将变成10、13和15 3.4.7 点语法 ActionScript中一个很重要的概念是点语法。点语法也是很多面向对象的编程语言
35、中用来组织对象和函数的方法。 假设你想求一个数的绝对值,Flash中有一个内置的绝对值函数,它包含在ActionScript的“对象”/“核心”/“Math”/“方法”中。要使用绝对值函数,首先要使用对象名,即Math,然后是方法名abs,它们之间用符号“.”隔开,具体表示方法如下所示: var a = Math.abs(-7); 点语法的另一个用途是指定影片剪辑的属性。如下面的语句将影片剪辑myMC的_alpha(透明度)属性设置为50%: myMC._alpha = 50; 你还可以在影片剪辑中使用点语法定位根(root)中的一个全局变量。如果你在主时间轴中创建了一个全局变量globelV
36、ar,而要在影片剪辑中使用这个全局变量,可以使用如下的语句: trace(_root.globleVar); 如果你现在对对象、影片剪辑属性、层级之类的概念还不熟悉,不用着急,在以后的内容中我们将对它们进行更深入的讲解。 3.4.8 注释 我们可以在Flash的动作面板中添加注释,注释就是程序中并不参与执行的那些代码。它可以用来提醒你某些代码的作用,方便你组织和编写脚本。一个注释的例子如下所示: / 将影片剪辑myMC的透明度设置为50% myMC._alpha = 50; 该例的第1行是注释,注释以双斜线/开头,在/后面你可以输入任意的文本和符号,Flash会自动将注释部分用灰色标示。 上例
37、是将注释专门放在一行中,你也可以将注释放在一行代码的后面,如下所示: myMC._alpha = 50; / 将影片剪辑myMC的透明度设置为50% 只要使用/符号,Flash就会忽略它后面的部分。 3.5 调试脚本 无论在编写程序时有多么细心,每个程序员都避免不了要调试程序。要学好ActionScript,你就得熟练掌握调试程序的方法。在Flash MX中调试程序有3种方法:逻辑推断、向输出窗口发送信息和使用脚本调试器。 3.5.1 逻辑推断 许多程序错误其实很简单,也很容易解决,并不需要专门的调试工具。当程序出现错误时,你应对错误出现在哪里有一个大致的把握。 就算你不知道问题出在哪里,但通
38、过细心阅读代码,你也有可能找到它。你可以思考一下,你要实现的效果是什么?现在的效果与你的设想有多大差距?是什么原因造成了这种差距?修改哪些部分有望改正这种错误?经过反复思考、修改和调试,你对程序的理解就会不断加深,你的程序也会越来越趋于正确。 没有人比你更了解你自己的程序,所以对你来说,你编写的程序最先宜采用逻辑推断的方法进行调试。还有一些错误或漏洞隐藏得比较深,这就需要借助于调试工具。 3.5.2 输出窗口 输出窗口是一个简单而实用的调试工具,在程序中可以使用trace命令将特定的信息发送到输出窗口中,这些信息可以帮助你了解代码的运行情况。 前面我们已经介绍过输出窗口,这里就不再赘述了。 3
39、.5.3 调试器 调试器是一个更专业的调试工具,它是Flash MX中的一个窗口,通过调试器可以查看影片中的各种数据以及ActionScript代码的运行情况。 选择“控制”“调试影片”命令,或按快捷键Ctrl+Shift+Enter,开始调试影片。与测试影片不同的是,调试影片时多了一个调试器窗口调试器窗口中包含很多窗格,在左边的窗格中可以检查Flash影片中不同类型的对象,右边的窗格显示影片中所有的ActionScript。 在调试器窗口中可以设置断点,断点即是为某行代码添加的一个标记,当调试影片时,影片会自动在断点处停止,允许你查看当前包括变量值在内的的影片状态。使用断点可以使你逐行地执行代码,对每行代码的运行结果进行观察和分析。 初学ActionScript的时候,你可能并不需要使用调试器;但是当你成长为一名经验丰富的程序员时,你就会发现它对你是非常有用的。