flash动画设计第8章.ppt
第第8章章交互式动画基础知识交互式动画基础知识vv8.1撰写脚本撰写脚本vv8.2动作脚本的语法动作脚本的语法vv8.3数据类型数据类型vv8.4变量的使用变量的使用vv8.5表达式与运算符表达式与运算符vv8.6条件语句和循环语句条件语句和循环语句vv8.7事事件件本章小结8.1撰写脚本撰写脚本vv动作脚本就是在动画运行过程中起到动作脚本就是在动画运行过程中起到控制和计算作用的程序代码。理解和控制和计算作用的程序代码。理解和掌握好脚本的基本元素和编程技巧是掌握好脚本的基本元素和编程技巧是学习深层次动画制作的根本。学习深层次动画制作的根本。vv811脚本概述脚本概述 自从自从自从自从Flash5Flash5之后,编程变得越来越被重视,特别之后,编程变得越来越被重视,特别之后,编程变得越来越被重视,特别之后,编程变得越来越被重视,特别是推出了是推出了是推出了是推出了ActionscriptActionscript之后。作为用户不必非常了解每之后。作为用户不必非常了解每之后。作为用户不必非常了解每之后。作为用户不必非常了解每一个一个一个一个ActionscriptActionscript的元素,只要有一个清晰的目标就可的元素,只要有一个清晰的目标就可的元素,只要有一个清晰的目标就可的元素,只要有一个清晰的目标就可以开始简单的编程了。当然,动作脚本也有它的语法以开始简单的编程了。当然,动作脚本也有它的语法以开始简单的编程了。当然,动作脚本也有它的语法以开始简单的编程了。当然,动作脚本也有它的语法和规则,这些语法和规则用来确定哪些字符和单词可和规则,这些语法和规则用来确定哪些字符和单词可和规则,这些语法和规则用来确定哪些字符和单词可和规则,这些语法和规则用来确定哪些字符和单词可以用于产生什么样的交互效果。以用于产生什么样的交互效果。以用于产生什么样的交互效果。以用于产生什么样的交互效果。vv812使用动作面板使用动作面板动作面板有两种模式:动作面板有两种模式:动作面板有两种模式:动作面板有两种模式:标准模式和专家模式。标准模式和专家模式。标准模式和专家模式。标准模式和专家模式。标准模式:是将命令已经分好了类别,标准模式:是将命令已经分好了类别,标准模式:是将命令已经分好了类别,标准模式:是将命令已经分好了类别,可以直接进行选择。可以直接进行选择。可以直接进行选择。可以直接进行选择。专家模式:是让用户直接输入命令,专家模式:是让用户直接输入命令,专家模式:是让用户直接输入命令,专家模式:是让用户直接输入命令,就像平时的编程。就像平时的编程。就像平时的编程。就像平时的编程。vv813为对象添加动作为对象添加动作要要为为对对象象添添加加动动作作,可可以以通通过过在在动动作作面面板板中中编编写写语语句句来来完完成成,比比如如,要要指指定定当当用用户户按按“L”L”键键时时,链链接接到到一一个个网网页页,则则可可以以给给按按钮钮“L”L”附附加加以以下下动动作:作:on(keyPress”L”)on(keyPress”L”)”);”);在动作面板中的程序,如图所示:在动作面板中的程序,如图所示:8.2动作脚本的语法动作脚本的语法vv821点语法点语法点语法的结构如下所述:点语法的结构如下所述:点点的的左左侧侧可可以以是是动动画画中中的的对对象象、实实例例或或时时间间轴轴。点点的的右右侧侧可可以以是是与与左左侧侧元元素素相相关关的的属属性性、目目标标路路径径、变变量量或或动动作作。下下面面是是三三种种不不同的形式:同的形式:myClip.visible=0;名为myClip的MovieClip通过使用点语法将_visible属性设置为0,使得它变透明。menuBar.menu1.item5;显示了变量item5的路径,它位于动画menu1中,menu1又嵌套在动画menuBar中。_root.gotoAndPlay(5);使用_root参考命令,主时间轴跳转到第5帧并进行播放。vv822大括号大括号 ActionScriptActionScript使使使使用用用用大大大大括括括括号号号号符符符符号号号号()()来来来来组组组组织织织织脚脚脚脚本本本本元元元元素素素素(这这这这些些些些字字字字符符符符也也也也叫叫叫叫做做做做波波波波形形形形括括括括号号号号)。在在在在下下下下面面面面的的的的程程程程序序序序中中中中,当当当当鼠鼠鼠鼠标标标标被被被被按按按按下下下下时时时时,在在在在大大大大括括括括号号号号之之之之间间间间的的的的所所所所有有有有语语语语句将被执行。句将被执行。句将被执行。句将被执行。on(release)on(release)dots_color.setRGB(0 x00cc00);dots_color.setRGB(0 x00cc00);vv823分号分号 在在在在ActionscriptActionscript中中中中使使使使用用用用分分分分号号号号作作作作为为为为结结结结束束束束标标标标志志志志。例例例例如如如如,下下下下面面面面的的的的语语语语句句句句中中中中就就就就使使使使用用用用了了了了分分分分号号号号作作作作为为为为结结结结束标志:束标志:束标志:束标志:gotoAndplaygotoAndplay();();();();row=0row=0;如果忽略了分号,如果忽略了分号,如果忽略了分号,如果忽略了分号,FlashFlash也能正确编译脚本。但是,也能正确编译脚本。但是,也能正确编译脚本。但是,也能正确编译脚本。但是,最好还是使用分号作为结束最好还是使用分号作为结束最好还是使用分号作为结束最好还是使用分号作为结束标志。标志。标志。标志。vv824括号括号 当当当当用用用用户户户户定定定定义义义义函函函函数数数数时时时时,所所所所有有有有参参参参数数数数都放置在括号内。例如:都放置在括号内。例如:都放置在括号内。例如:都放置在括号内。例如:functionmyFunction(name,age)functionmyFunction(name,age)当当当当用用用用户户户户调调调调用用用用函函函函数数数数时时时时,又又又又需需需需要要要要使使使使用括号将参数传递给函数。例如:用括号将参数传递给函数。例如:用括号将参数传递给函数。例如:用括号将参数传递给函数。例如:myFunctionmyFunction(”Linda”,16”Linda”,16);使用括号还可以越过使用括号还可以越过使用括号还可以越过使用括号还可以越过ActionscriptActionscript的优先级顺序,使的优先级顺序,使的优先级顺序,使的优先级顺序,使ActionscriptActionscript语句更容易阅读。语句更容易阅读。语句更容易阅读。语句更容易阅读。vv825大写和小写大写和小写字母字母 在在在在ActionscriptActionscript中中中中,关关关关键键键键字字字字、类类类类名名名名、变变变变量量量量等等等等都都都都区区区区分分分分大大大大小小小小写写写写的的的的,其其其其他他他他则则则则无无无无所所所所谓谓谓谓。例例例例如如如如,下下下下 面面面面 的的的的 语语语语 句句句句 是是是是 等等等等 价价价价 的的的的:cat.hill=true;cat.hill=true;CAT.hill=true;CAT.hill=true;但是,最好统一大小写但是,最好统一大小写但是,最好统一大小写但是,最好统一大小写的规则,这样有助于使的规则,这样有助于使的规则,这样有助于使的规则,这样有助于使ActionscriptActionscript代码中的函数和代码中的函数和代码中的函数和代码中的函数和变量名等更容易识别。变量名等更容易识别。变量名等更容易识别。变量名等更容易识别。vv826注释注释 在动作面板中,使用在动作面板中,使用在动作面板中,使用在动作面板中,使用commentcomment动作可以给脚本添加注释信息,以动作可以给脚本添加注释信息,以动作可以给脚本添加注释信息,以动作可以给脚本添加注释信息,以使代码更容易阅读。使代码更容易阅读。使代码更容易阅读。使代码更容易阅读。在动作列表中,注释以粉红色在动作列表中,注释以粉红色在动作列表中,注释以粉红色在动作列表中,注释以粉红色显示。用户可以添加任意长度的批显示。用户可以添加任意长度的批显示。用户可以添加任意长度的批显示。用户可以添加任意长度的批注而不会影响导出文件的大小。注而不会影响导出文件的大小。注而不会影响导出文件的大小。注而不会影响导出文件的大小。vv827关键字关键字ActionscriptActionscript在语言中保留了在语言中保留了在语言中保留了在语言中保留了若干关键字以做特殊用途。用户若干关键字以做特殊用途。用户若干关键字以做特殊用途。用户若干关键字以做特殊用途。用户不能使用它们作为变量名、函数不能使用它们作为变量名、函数不能使用它们作为变量名、函数不能使用它们作为变量名、函数或标签名。或标签名。或标签名。或标签名。v828常数常数 常数就是一种属性,这种属性的值永远都不会发常数就是一种属性,这种属性的值永远都不会发生变化。生变化。8.3数据类型数据类型vv 数据类型是描述变量或动作脚本元素可数据类型是描述变量或动作脚本元素可以包含的信息的种类。数据类型包含了两类:以包含的信息的种类。数据类型包含了两类:原始类和引用类。原始类数据类型又包括字原始类和引用类。原始类数据类型又包括字符串、数值和布尔值,它们都有一个常数值,符串、数值和布尔值,它们都有一个常数值,因此可以包含它们所代表的元素的实际值。因此可以包含它们所代表的元素的实际值。引用类数据类型包括动画和对象,它们的值引用类数据类型包括动画和对象,它们的值是可变的,因此它们包含对该元素的实际值是可变的,因此它们包含对该元素的实际值的引用。每种数据类型都有自己的规则。的引用。每种数据类型都有自己的规则。vv831字符串字符串 “字符串”就是包括字母、数字和标点符号等在内的字符序列。在动作脚本中,用户可以在单引号或双引号内输入字符串。字符串被当作字符,而不是变量进行处理。还有一些必须用特殊的转义码才能表示的字符。转码序列字符b退格键n回车符反斜杠vv832数值数值 数值数据类型是双精度浮点数值数据类型是双精度浮点数值数据类型是双精度浮点数值数据类型是双精度浮点数。可以使用加()、减()数。可以使用加()、减()数。可以使用加()、减()数。可以使用加()、减()、乘(、乘(、乘(、乘()、除()、除()、除()、除()、余数)、余数)、余数)、余数(%)、递增()和递减)、递增()和递减)、递增()和递减)、递增()和递减()来控制数值。也可以使()来控制数值。也可以使()来控制数值。也可以使()来控制数值。也可以使用内置的用内置的用内置的用内置的MathMath和和和和NumberNumber类来处类来处类来处类来处理数字。理数字。理数字。理数字。v833布尔值布尔值 布尔值只有两种选择:布尔值只有两种选择:true和和flase。有时动作有时动作脚本也会将它们转换为脚本也会将它们转换为1和和0,布尔值经常和逻辑运,布尔值经常和逻辑运算符一起用于控制脚本的程序中。算符一起用于控制脚本的程序中。8 83 34 4 对对 象象 对象是属性的集合。每个属性都有自己的名称和值。属性的值可以对象是属性的集合。每个属性都有自己的名称和值。属性的值可以是任何的是任何的FlashFlash数据类型,甚至是对象数据类型。这样就可以使对象相互数据类型,甚至是对象数据类型。这样就可以使对象相互包含或嵌入其他对象。要指定对象及其属性,可以使用点运算符。包含或嵌入其他对象。要指定对象及其属性,可以使用点运算符。835影片剪辑影片剪辑 影片剪辑是影片剪辑是FlashFlash电影中可以电影中可以播放动画的元件。它们是惟一引播放动画的元件。它们是惟一引用图形元素的数据类型。可以利用图形元素的数据类型。可以利用点运算符来指定对象及其属性。用点运算符来指定对象及其属性。通过动作脚本的通过动作脚本的MovieClipMovieClip对象包对象包含的方法可以对含的方法可以对舞台上的影片剪舞台上的影片剪辑符号进行控制。辑符号进行控制。8 83 36 6空值与未定义数据类型空值与未定义数据类型空值与未定义数据类型空值与未定义数据类型 空空值值数数据据类类型型只只有有一一个个值值,即即nullnull,此此值值代代表表“没没有有值值”,但但不不为为0 0。nullnull可可以以用用在在各各种种情情况况中中,例例如如指指示示变变量量尚尚未未接接收收到到值值、指指示示变变量量不不再再包包含含值值、指指示示函函数数没没有有可可以以返返回的值、指示省略了一个参数等。回的值、指示省略了一个参数等。未定义数据类型有一个值,即未定义数据类型有一个值,即undefinedundefined,被用于尚未指定值的变量。被用于尚未指定值的变量。8.4变量的使用变量的使用vv 变量实际是一个包含信息的空间。此空间不会改变,但其中的内容是可以变化的。在动画播放的过程中修改变量中的值,可以记录和保存用户操作的信息。变量可以存放任何数据类型。包括数值型、字符串型、布尔型、对象或动画等。每个动画和动画片断都有自己的一组变量,每个变量都有独立于其他变量的值。vv841命名变量与输入变量命名变量与输入变量命名变量要遵守下面的规则:命名变量要遵守下面的规则:命名变量要遵守下面的规则:命名变量要遵守下面的规则:vv(1 1)必须是标识符。必须是标识符。必须是标识符。必须是标识符。vv(2 2)不能是关键字、布尔值。不能是关键字、布尔值。不能是关键字、布尔值。不能是关键字、布尔值。vv(3 3)在其范围内一定是惟一的。在其范围内一定是惟一的。在其范围内一定是惟一的。在其范围内一定是惟一的。输入变量时,用户不必明确定义变量输入变量时,用户不必明确定义变量包含的数据类型。包含的数据类型。Flash可以根据变量被赋可以根据变量被赋值的情况自动确定变量的数据类型。值的情况自动确定变量的数据类型。(1)局部变量:在自身代码块中有效的变量(在大括号内)。(2)全局变量:即使没有使用目标路径指定,也可以在任何时间轴内有效。(3)时间轴变量:可以在使用目标路径指定的任何时间轴内有效。vv842确定变量范围确定变量范围 所所谓谓确确定定变变量量的的范范围围,就就是是指指变变量量被被认认可可和和可可以以被被引引用用的的区区域域。在在动动作脚本中有作脚本中有3 3种类型的变量范围:种类型的变量范围:使用局部变量可以防止命名冲突,减少动画中可能发使用局部变量可以防止命名冲突,减少动画中可能发生的错误。因为局部变量只能在其自身的代码块中修改,生的错误。因为局部变量只能在其自身的代码块中修改,所以较好的做法是在函数的主体中使用局部变量。如果在所以较好的做法是在函数的主体中使用局部变量。如果在函数的表达式中使用了全局变量,则当全局变量的值在函函数的表达式中使用了全局变量,则当全局变量的值在函数外被修改时,函数也将被修改。数外被修改时,函数也将被修改。vv843变量声明变量声明 不不同同的的变变量量类类型型声声明明的的形形式式有有所所不不同同,要要声声明明时时间间轴轴变变量量,可可以以使使用用setsetvariablevariable动动作作或或赋赋值值运运算算符符(=),两两种种方方法法可可获获得得的的结结果果一一样样。要要声声明明局局部部变变量量,可可以以在在函函数数主主体体内内使使用用varvar语语句句。局局部部变变量量只只在在自自身身的的代代码码块块中中有有效效,超超出出该该代代码码块块即即无无效效。要要声声明明全全局局变变量量,可可以以在在变变量量名名前前面面使用使用_ _globalglobal标识符。例如:标识符。例如:创建一个全局变量创建一个全局变量myBookmyBook,_global.myBook=”China”;_global.myBook=”China”;要测试变量的值,可以使用要测试变量的值,可以使用tracetrace动作将变量的值发送到输出窗口。动作将变量的值发送到输出窗口。trace语句类似我们经常用到的print语句。vv844在脚本中使用变量在脚本中使用变量 在在脚脚本本中中使使用用变变量量,则则必必须须先先声声明明变变量量。如如果果使使用用了了一一个个未未声声明明的的变变量量,则则变变量量的的值值将将是是undefinedundefined,脚脚本本也也因因此此产产生生错错误误。在在程程序序中中,变变量量的的值值可可以以被被多多次次修修改改。变变量量所所包包含含的的数数据据类类型型将将影影响响到到变变量量修修改改的的方方式式和和时时间间。原原始始数数据据类类型型都都是是通通过过值值进进行行传传递递的的,这这意意味味着着变变量量的的实实际际内容被传递到变量中。内容被传递到变量中。比如下例:比如下例:varx=15varx=15;vary=xvary=x;varx=30varx=30;输出的结果是输出的结果是x=30 x=30,y=15y=15。8.5表达式与运算符表达式与运算符vvflashflash中中中中表表表表达达达达式式式式是是是是指指指指可可可可以以以以取取取取得得得得返返返返回回回回值值值值的的的的任任任任何何何何语语语语句句句句。用用用用户户户户可可可可以以以以通通通通过过过过运运运运算算算算符符符符、求求求求值值值值、调调调调用用用用函函函函数数数数等等等等方方方方法法法法创创创创建建建建表表表表达达达达式式式式。如如如如果果果果在在在在动动动动作作作作面面面面板板板板的的的的普普普普通通通通模模模模式式式式下下下下编编编编写写写写表表表表达达达达式式式式,则则则则请请请请确确确确认认认认已已已已经经经经选选选选中中中中了了了了表表表表达达达达式式式式复复复复选选选选框框框框,否否否否则则则则在在在在参参参参数数数数框框框框中中中中包包包包含含含含的的的的就就就就只是文本字符串。只是文本字符串。只是文本字符串。只是文本字符串。vv运运运运算算算算符符符符是是是是指指指指定定定定如如如如何何何何合合合合并并并并、比比比比较较较较或或或或修修修修改改改改表表表表达达达达式式式式中中中中值值值值的的的的字字字字符。运算符所操作的元素被称为运算项。符。运算符所操作的元素被称为运算项。符。运算符所操作的元素被称为运算项。符。运算符所操作的元素被称为运算项。vv851运算符和表运算符和表达式的输入达式的输入 可可可可以以以以在在在在动动动动作作作作属属属属性性性性面面面面板板板板中中中中将将将将表表表表达达达达式式式式和运算符输入,如图和运算符输入,如图和运算符输入,如图和运算符输入,如图8.68.6所示:所示:所示:所示:其中上面就是表达式,中间其中上面就是表达式,中间其中上面就是表达式,中间其中上面就是表达式,中间用的用的用的用的+、*就是运算符。就是运算符。就是运算符。就是运算符。vv852运算符的优运算符的优先级先级 当当当当同同同同一一一一个个个个语语语语句句句句中中中中使使使使用用用用两两两两个个个个或或或或两两两两个个个个以以以以上上上上的的的的运运运运算算算算符符符符,一一一一些些些些运运运运算算算算符符符符就就就就会会会会优优优优于于于于其其其其他他他他的的的的运运运运算算算算符符符符。动动动动作作作作脚脚脚脚本本本本语语语语言言言言严严严严格格格格按按按按照照照照运运运运算算算算符符符符的的的的优优优优先先先先级级级级顺顺顺顺序序序序来来来来执执执执行行行行语语语语句句句句。例例例例如如如如,乘乘乘乘除除除除优优优优于于于于加加加加减减减减,括括括括号号号号优于乘法。优于乘法。优于乘法。优于乘法。当两个或两个以上的运当两个或两个以上的运当两个或两个以上的运当两个或两个以上的运算符具有相同的运算优先级算符具有相同的运算优先级算符具有相同的运算优先级算符具有相同的运算优先级时,它们将按照从左到右的时,它们将按照从左到右的时,它们将按照从左到右的时,它们将按照从左到右的原则运算。原则运算。原则运算。原则运算。vv853算术运算符算术运算符 算术运算符可以执行加、减、乘、除和算术运算符可以执行加、减、乘、除和算术运算符可以执行加、减、乘、除和算术运算符可以执行加、减、乘、除和其他数学运算。最常见的是递增或递减的用其他数学运算。最常见的是递增或递减的用其他数学运算。最常见的是递增或递减的用其他数学运算。最常见的是递增或递减的用法,如:法,如:法,如:法,如:i+i+、k-k-。运算符运算符执行的运算执行的运算+加加-减减*乘乘/除除%求余求余+递增递增-递减递减vv854比较运算符比较运算符 比较运算符用于比较表达式的值,然后比较运算符用于比较表达式的值,然后比较运算符用于比较表达式的值,然后比较运算符用于比较表达式的值,然后返回一个布尔值返回一个布尔值返回一个布尔值返回一个布尔值truetrue或或或或falsefalse。常见用于条件语常见用于条件语常见用于条件语常见用于条件语句和循环语句。句和循环语句。句和循环语句。句和循环语句。比较运算符比较运算符比较操作比较操作大于大于=大于或等于大于或等于vv855字符串运算符字符串运算符 字字符符串串运运算算符符(+)可可以以将将两两个个字字符符串串连连在在一一起起。例例如如:“好好好好”+“”+“学学习习”得得到到的的结结果果是是“好好好好学学习习”。如如果果相相加加的的项项目目中中只只有有一一个个是是字符串,则字符串,则flashflash会自动将另一个操作数转换为字符串。会自动将另一个操作数转换为字符串。比比较较运运算算符符、=、和和=在在处处理理字字符符串串时时也也有有特特殊殊的的效效果果。这这些些运运算算符符会会比比较较两两个个字字符符串串,以以确确定定哪哪一一个个字字符符串串按按字字母母数数字字顺顺序序排排在在前前面面。只只有有在在两两个个操操作作数数都都是是字字符符串串时时,比比较较运运算算符符才才会会执执行行字字符符串串比比较较。如如果果只只有有一一个个操操作作数数是是字字符符串串,动动作作脚脚本本会会将将两两个个操操作作数数都都转转换换为为数数字字,然后执行数值比较。然后执行数值比较。856逻辑运算符逻辑运算符 逻辑运算符对布尔值(逻辑运算符对布尔值(truetrue或或falsefalse)进行比较进行比较,然后返回第三个布尔值。,然后返回第三个布尔值。比如,两边的逻辑值都是比如,两边的逻辑值都是truetrue,则逻辑则逻辑“与与”运算符(运算符(&)将返回)将返回truetrue。如果如果其中一边或两边的逻辑值为其中一边或两边的逻辑值为truetrue,则逻辑则逻辑“或或”运算符(运算符(|)将返回)将返回truetrue。逻逻辑运算符通常与比较运算符结合使用。辑运算符通常与比较运算符结合使用。逻辑运算符逻辑运算符操作操作&逻辑逻辑“和和”|逻辑逻辑“与与”!逻辑逻辑“非非”vv857位运算符位运算符 按位运算符在内部处理浮点数,将它们转换为按位运算符在内部处理浮点数,将它们转换为按位运算符在内部处理浮点数,将它们转换为按位运算符在内部处理浮点数,将它们转换为3232位整型。执位整型。执位整型。执位整型。执行的确切运算取决于运算符,但是所有的按位运算都会分别评估行的确切运算取决于运算符,但是所有的按位运算都会分别评估行的确切运算取决于运算符,但是所有的按位运算都会分别评估行的确切运算取决于运算符,但是所有的按位运算都会分别评估3232位整型的每个二进制位,从而计算新的值。位整型的每个二进制位,从而计算新的值。位整型的每个二进制位,从而计算新的值。位整型的每个二进制位,从而计算新的值。位运算符位运算符操作操作&按位按位“与与”按位按位“非非”|按位按位“或或”按位按位“异或异或”有位移有位移右位移填零右位移填零858赋值运算符赋值运算符 程序中使用赋值运算符程序中使用赋值运算符(=)(=)为变量赋值,例如:为变量赋值,例如:var x=5var x=5;用户还可以使用赋值运算符给同一个表达式中的多个变量用户还可以使用赋值运算符给同一个表达式中的多个变量赋值。用户还可以使用复合赋值运算符联合多个运算:复合赋值。用户还可以使用复合赋值运算符联合多个运算:复合运算符可以对两个操作数都进行运算,然后将新值赋给第一运算符可以对两个操作数都进行运算,然后将新值赋给第一个操作数。个操作数。运算符运算符执行的运算执行的运算=赋值赋值+=相加并赋值相加并赋值-=相减并赋值相减并赋值*=相乘并赋值相乘并赋值%=求余并赋值求余并赋值/=相除并赋值相除并赋值859点运算符和数组访问运算符点运算符和数组访问运算符 用户可以使用点运算符(用户可以使用点运算符(.)和数组运算符()和数组运算符()访问)访问任何内置或自定义的程序中对象属性。点运算符在左边使用任何内置或自定义的程序中对象属性。点运算符在左边使用对象,在右边使用属性或变量。属性或变量名不能是从字符对象,在右边使用属性或变量。属性或变量名不能是从字符串获取的字符或变量,而必须是标识符。点运算符和数组访串获取的字符或变量,而必须是标识符。点运算符和数组访问运算符是一样的,但点运算符将标识符作为其属性,而数问运算符是一样的,但点运算符将标识符作为其属性,而数组访问运算符则从其内容中获取名称,然后读取命名属性的组访问运算符则从其内容中获取名称,然后读取命名属性的值。用户可以使用数组访问运算符动态设置和检索实例名称值。用户可以使用数组访问运算符动态设置和检索实例名称和变量,也可以被用在赋值运算符的左边,这时允许用户动和变量,也可以被用在赋值运算符的左边,这时允许用户动态设置实例、变量和对象的名称。态设置实例、变量和对象的名称。8.6条件语句和循环语句条件语句和循环语句vv脚本程序的结构,按照结构化语言的脚本程序的结构,按照结构化语言的特点,一般都按照执行的方式分为顺特点,一般都按照执行的方式分为顺序结构、分支结构和循环结构。其中序结构、分支结构和循环结构。其中顺序结构最为简单,就是在语句执行顺序结构最为简单,就是在语句执行的时候,程序将按照顺序执行语句。的时候,程序将按照顺序执行语句。v861条件语句条件语句条件语句,也叫选择语句,可以根据条件的判断结果来执行相应的代码。条件语句包括两个类型,即if型和switch型。其中形式如下:(1)if语句if(条件表达式)/条件成立的情况下,执行中的语句,否则跳过执行后面的语句(2)ifelse语句if(条件表达式)/条件成立,执行内的语句else/条件不成立时,执行内的语句另,if语句可以嵌套,实现多重判断。(3)switch-case语句switch(表达式)case表达式1:语句1;break;case表达式2:语句2;break;case表达式n:语句n;break;/根据switch的表达式执行相应的case语句,利用break跳出分支,若没有相匹配的表达式则执行default语句组。default语句组:v862循环语句循环语句如果要多次执行相同的语句,可以利用循环语句简化程序。在flash中有3种循环语句:(1)for语句。for语句的格式:for(表达式1;表达式2;表达式3)循环体/条件成立时,执行的语句。其中:表达式1为开始循环的初始条件;表达式2为循环判断的条件;表达式3为每次循环后计算的表达式,通常为递增或递减。(2)forin语句。这个语句,仅仅和数组以及对象数据类型一起使用。使用此语句可以在不知道数组里面有多少个元素,或元素一直在变化的情况下遍历所有的数组元素。for(nin数组名或对象数据类型)/遍历数组或输出对象数据类型(3)while语句。while循环在条件成立的时候,一直循环到条件不成立。while(条件表达式)/条件为真时,执行中的语句,在循环过程中,也可以使用break语句跳出循环。8.7事事件件 事事事事件件件件就就就就是是是是动动动动画画画画中中中中程程程程序序序序根根根根据据据据外外外外部部部部发发发发生生生生的的的的事事事事情情情情,做做做做出出出出的的的的相相相相应应应应响响响响应应应应。在在在在flashflash中有中有中有中有3 3种事件:种事件:种事件:种事件:vv(1 1)关键帧事件。关键帧事件。关键帧事件。关键帧事件。vv(2 2)鼠标(按钮)事件。鼠标(按钮)事件。鼠标(按钮)事件。鼠标(按钮)事件。vv(3 3)电影剪辑事件。电影剪辑事件。电影剪辑事件。电影剪辑事件。这这这这3 3种事件都对应着可以在种事件都对应着可以在种事件都对应着可以在种事件都对应着可以在flashflash中放脚本代码的位置。也就是中放脚本代码的位置。也就是中放脚本代码的位置。也就是中放脚本代码的位置。也就是说,将说,将说,将说,将3 3种事件分别放置在对应的关键帧、按钮和电影剪辑实例中。种事件分别放置在对应的关键帧、按钮和电影剪辑实例中。种事件分别放置在对应的关键帧、按钮和电影剪辑实例中。种事件分别放置在对应的关键帧、按钮和电影剪辑实例中。用鼠标右键点击这些地方,如果菜单中的动作选项是可以选择的,用鼠标右键点击这些地方,如果菜单中的动作选项是可以选择的,用鼠标右键点击这些地方,如果菜单中的动作选项是可以选择的,用鼠标右键点击这些地方,如果菜单中的动作选项是可以选择的,则意味着是可以添加脚本动作的,否则为灰色不可用。则意味着是可以添加脚本动作的,否则为灰色不可用。则意味着是可以添加脚本动作的,否则为灰色不可用。则意味着是可以添加脚本动作的,否则为灰色不可用。vv871关键帧事件关键帧事件 当把程序放在关键帧里面的时候,只要当把程序放在关键帧里面的时候,只要flashflash到达所在关键帧,程到达所在关键帧,程序就开始执行。因为关键帧事件只是在影片运行到相应的关键帧时,才序就开始执行。因为关键帧事件只是在影片运行到相应的关键帧时,才会被激发,所以一般只把关键帧作为一个放置通用代码的地方。会被激发,所以一般只把关键帧作为一个放置通用代码的地方。vv8 87 72 2鼠标事件鼠标事件 鼠标事件,也叫按钮事件。是指一种基于鼠标指针位置和移动产生鼠标事件,也叫按钮事件。是指一种基于鼠标指针位置和移动产生的交互性事件。鼠标事件只能在场景里的按钮实例中放置,而不是在按的交互性事件。鼠标事件只能在场景里的按钮实例中放置,而不是在按钮的钮的4 4个状态关键帧中放置。放置在这个状态关键帧中放置。放置在这4 4个状态关键帧里的所有动作将被个状态关键帧里的所有动作将被忽略。忽略。鼠标事件用到鼠标事件用到onon()()语句。使用方法如下:语句。使用方法如下:on on(mouseEventmouseEvent)/所执行的语句所执行的语句 mouseEvent mouseEvent的参数如下:的参数如下:(1 1)press press 在鼠标指针经过按钮时按下鼠标按钮。在鼠标指针经过按钮时按下鼠标按钮。(2 2)release release 在鼠标指针经过按钮时释放鼠标按钮。在鼠标指针经过按钮时释放鼠标按钮。(3)releaseOutside鼠标指针在按钮之内时按下按钮后,将鼠标指针移到按钮之外,此时释放鼠标按钮。(4)rollout鼠标指针滑出按钮区域。(5)rollover鼠标指针滑过按钮区域。(6)dragOut在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮区域。(7)dragOver在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮,再滑回此按钮。(8)keyPress(“key”)按下指定的键。vv873电影剪辑事件电影剪辑事件电影剪辑事件用法如下:电影剪辑事件用法如下:onClipeventonClipevent(movieEventmovieEvent)/执行的语句执行的语句其中其中movieEventmovieEvent的参数如下:的参数如下:vv(1 1)loadload电影剪辑装载时被激发。电影剪辑装载时被激发。vv(2 2)unloadunload电影剪辑卸载时被激发。电影剪辑卸载时被激发。vv(3 3)enterFrameenterFrame当进入一帧时激发,先处理与当进入一帧时激发,先处理与 enterFrameenterFrame剪辑事件关联的动作,然后才处理附剪辑事件关联的动作,然后才处理附 加到受影响帧的所有帧动作。加到受影响帧的所有帧动作。vv(4 4)mouseMovemouseMove当鼠标移动时激发。当鼠标移动时激发。v(5)mouseDown当按下鼠标左键时激发。v(6)mouseUp当释放鼠标左键时激发。v(7)keyDown当按下某个键时激发。使用Key.getCode()获取有关最后按下的键的信息。v(8)keyUp当松开某个键时启动。使用Key.getCode()获取有关最后按下的键的信息。v(9)date当 使 用 loadVariables(载 入 变 量)或loadMovie(载入影片)时接收数据时激发此动作。第八章小结第八章小结第八章小结第八章小结l要正确使用Actionscript的术语;l一个大程序可以将它们分成多个小程序段,随时加以测试;l使用trace函数随时跟踪变量和属性的变化情况;l使用自动换行功能可以使工作更轻松;l使用注释代码。