ActionScript应用.ppt_第1页
ActionScript应用.ppt_第2页
ActionScript应用.ppt_第3页
ActionScript应用.ppt_第4页
ActionScript应用.ppt_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章,ActionScript应用,学习目标,本章主要介绍了ActionScript的语法,包括数据类型、表达式和运算符的应用;动作脚本的基本语法规则;变量、函数的声明与使用;动作面板的使用;条件/循环控制脚本;在帧、按钮和影片剪辑上插入动作脚本等。,本章重点,动作面板ActionScript基础语法在按钮中插入ActionScript在帧中插入ActionScript在影片剪辑中插入ActionScript,7.1ActionScript概述,7.1.1什么是ActionScriptActionScript(简称AS)就是动作脚本的意思,ActionScript是Flash中内建的一种脚本编程语言,它在Flash内容和应用程序中实现了交互性、数据处理以及其它许多功能,它是由Flash播放器中的ActionScript虚拟机来执行的。掌握了ActionScript,用户不仅能够制作出普通的观赏性的动画,还能够利用鼠标或键盘控制动画;不仅可以控制动画的播放或停止、音乐的打开或关闭、链接到指定的网页或文件等,还可以创建交互式网页,让用户填写表单、反馈用户信息,或者玩精彩互动游戏等。只要用户有创意,动作脚本的发挥空间是无限大的。,7.1.2ActionScript的版本,最早在Flash3中,Macromedia公司在其中加入了一套早期的ActionScript版本,这时候的代码和Basic语言很相似,用于完成一些简单的交互动作,功能很简单,语法冗长,执行效率也不好,且不容易掌握。,Macromedia公司在2007年推出AdobeFlashcs。Flashcs的创作环境有一些相关的改进,引入了最新且最具创新的ActionScript版本,即ActionScript3.0。虽然ActionScript3.0包含ActionScript编程人员所熟悉的许多类和功能,但ActionScript3.0在架构和概念上是区别于早期的ActionScript版本的。ActionScript3.0中的改进部分包括新增的核心语言功能、增强的灵活性及更加直观和结构化的开发。其中一个最主要的特性就是能够让用户在时间线动画与代码中进行转换,将它们放到ActionScript中,再转换出来。这样可以使设计者和开发者的工作结合在一起。并且,ActionScript3.0在flashPlayer中的回放速度要比ActionScript2.0快10倍,因此它既高速又高效。,7.1.3如何选用ActionScript的版本,在FlashPlayercs中,可以运行在早期FlashPlayer版本中运行的任何内容。但是,在FlashPlayercs中使用了ActionScript3.0后,在兼容性方面存在了一些问题。,Flashcs允许用户输出与某个FlashPlayer版本兼容的.swf文件。要设置一个.swf文件的版本,具体操作步骤如下:(1)运行Flashcs程序,在“欢迎屏幕”中,选择“Flash文件(ActionScript2.0)”选项,如图7-1所示(在本书第七、八两章中如不加特别说明,新建文件时均为“Flash文件(ActionScript2.0)”选项)。(2)选择【文件】|【发布设置】命令,在对话框中选择Flash选项卡,从“版本”下拉列表中选择版本,如图7-2所示。,图7-1新建Flash文档,图7-2发布设置中的Flash版本,7.2认识【动作】面板,在Flash中,ActionScript2.0程序根据编写的位置不同可以分成四种:(1)添加到按钮实例上的代码;(2)添加到帧上的代码;(3)添加到影片剪辑实例上的代码;(4)利用脚本编辑器编写的外部类的.as文件。前三种代码是利用【动作】面板添加的。但到了ActionScript3.0中却只允许向帧添加代码。,【动作】面板用于组织动作脚本,是制作动画过程中进行脚本编写的重要场合,用户可以用面板中自带的语言脚本也可以自己添加脚本来制作动画效果。Flashcs为用户提供了人性化的脚本编辑环境。不使用【动作】面板时它处于关闭状态,选择【窗口】|【动作】命令或按F9即可打开【动作】面板。若暂时不用【动作】面板,可以单击面板的标题来收缩面板,以节省空间,再次单击可以展开面板。,【动作】面板由以下几个部分组成,如图7-3所示。图7-3【动作】面板命令列表框脚本编辑窗口脚本导航器,图7-3【动作】面板,工具栏【将新项目添加到脚本中】按钮【查找】按钮【插入目标路径】按钮【语法检查】按钮【自动套用格式】按钮【显示代码提示】按钮,图7-3【动作】面板,【快捷菜单】按钮单击【快捷菜单】按钮,即可打开快捷菜单,如图7-12所示。菜单中包括一些常用的命令,为制作动画提供了方便。,图7-12快捷菜单,脚本助手在FlashMX2004版本中去除了脚本编辑器的普通模式,这给许多想学习脚本的爱好者带来了不少的困难。Flashcs版本中的“脚本助手”即是FlashMX2004之前版本的编辑器经过改进后的普通模式,而且比以前的版本更加完善。“脚本助手”是通过选择动作命令并在专门的编辑界面中通过编辑生成脚本,这个界面包含文本字段、单选按钮和复选框,可以提示正确变量及其他脚本语言构造,如图7-13所示。,图7-13脚本助手,除了通过【动作】面板向对象或帧添加动作脚本外,还可以利用脚本编辑器直接编写外部类的.as文件。在“欢迎屏幕”中选中“ActionScript”文件,即可创建一个外部类的.as文件,如图7-14所示,此时会打开ActionScrip文件的编辑界面,如图7-15所示。,图7-14创建ActionScrip文件,图7-15ActionScrip文件编辑界面,7.3ActionScript编程基础,7.3.1语法规则Flashcs中的脚本与其他的脚本语言一样,也有变量、函数、运算符和保留关键字等语言元素。它有自己的一套语法和标点符号使用规则,在编写ActionScript脚本时,必须遵守其编写时的语法规则,才能编写可以准确编译和运行的程序。,1、点语法,在AS中,点运算符被用来指明与某个对象或电影剪辑相关的属性和方法,也用于标识指向电影剪辑或变量的目标路径。用点运算符表达对象的属性,开始是对象或影片剪辑名,然后是一个点,最后是要指定的属性、方法或变量。如:window._x表示实例名为window的_x属性。点语法使用_root和_parent两个特殊的别名。_root是指主时间轴,可以使用_root别名创建一个绝对路径。例如,_root.window.play();语句将使主时间轴中的影片剪辑window开始播放。可以用别名_parent引用嵌套在当前影片剪辑中的影片剪辑,也可以用_parent创建一个相对目标路径。例如,如果影片剪辑tom嵌套在影片剪辑person中,那么在对象tom上的_parent.stop();语句告诉person停止播放。,2、大括号,使用大括号()可以将ActionScript事件、类定义和函数组合成块。可以将左大括号与声明放在同一行中。也可以将左大括号放在声明下边的一行。编码约定建议将左大括号放在同一行中以保持一致性。大括号必须是成对出现的。例如,onClipEvent(load)timer=newDate();,3、分号,AS语句用分号结束,每条语句的结尾都应该加上分号,如果省略语句结尾的分号,AS仍然能编译用户创建的脚本,在【动作】面板或“脚本”窗口中单击“自动套用格式”按钮后,将自动在语句的结尾添加分号。使用分号终止语句使用户能够在单个行中放置不止一条语句,但是这样做往往会使代码难以阅读。例如,下面的语句以分号结束:myClip._alpha=50;,4、圆括号,圆括号主要有以下几种用途:(1)在定义函数的时候,所有形参必须放在圆括号内;调用函数的时候,实参也必须放在圆括号中。functionmyFunction(name,age,reader)在数学表达式中用圆括号改变运算的顺序。trace(2+3*4);/14trace(2+3)*4);/20在循环和选择结构体中的循环条件和选择条件的描述,放在结构体的圆括号中。/循环结构体for(vari=0;iy)?max=x:max=y;中的条件运算符(?:)。,赋值运算符,二元运算符,有两个操作数,它根据一个操作数的值对另一个操作数进行赋值。一般的格式如下:varx:Number=5;/将值5赋予变量xvarx:Number=5+3;/将表达式5+3的值赋予变量x;还可以使用赋值运算符给同一表达式中的几个变量赋值。在下面的语句中,值10会被赋予变量numOne、numTwo和numThree。varnumOne:Number;varnumTwo:Number;varnumThree:Number;numOne=numTwo=numThree=10;,算术运算符,算术运算符对数字操作数执行算术运算。加号(+)递增(+)减号或取反运算符递减乘号(*)除号取模运算符(%)算术复合赋值运算符,关系运算符,关系运算符用于比较两个表达式的值,并且返回一个布尔值(true或false),关系运算符常常用于循环语句和条件语句中。如下面的例子当i小于5的时候,输出i的值。for(vari=0;i)和大于等于(=)小于()和小于等于(=),逻辑运算符,逻辑运算符用于将多个关系表达式或逻辑量连接起来组成逻辑表达式,常用于在条件或循环语句中判断多个条件的时候。逻辑与(/输出13,按位取反()按位取反():一元运算符,运算的时候,Flash将运算数转化为32位的二进制数,再按位进行非的运算。注意0的结果是-1,因为在32位二进制表示0的时候是00000000000000000000000000000000,按位取反后是11111111111111111111111111111111表示十进制(-1)。最简单的记忆规则是十进制的数字按位取反后的结果等于原来的数字取反后减1,如:trace(22);/输出-23trace(-36);/输出35,按位异或()按位异或():二元运算符,运算的时候,将Flash转化后生成的32位的二进制数按位进行异或运算。当两个相应位置的二进制同时为1或0的时候结果为0,否则结果为1。如:00的结果为0,0l的结果为1,10的结果为1,ll的结果为0。trace(129);/输出5,按位左移()按位左移():二元运算符,第一个运算数是需要进行移位的数字,第二个运算数是用来描述移多少位的正整数,运算的时候,Flash先将第一个运算数转化成32位的二进制数,再左移第二个运算数指示的位数。trace(110);/输出1024在上例中1处理成二进制代码为00000000000000000000000000000001左移10位以后为00000000000000000000010000000000等于十进制的1024,相当于乘以210。当第二个运算数大于32时会自动对它取模后再移位,移位时在二进制右边添加相应位数的0,并抛弃左边相应的位数。浮点数通过舍去小数点后面的所有位来转换为整数。如:trace(1.13)按位右移():二元运算符,使用方法和按位左移(3);/输出0trace(10248);/输出4,相当于除以28,按位无符号向右移位此运算符与按位向右移位运算符()基本相同,只是此运算符不保留原始表达式的符号,因为左侧的位始终用0填充。,按位运算复合赋值运算符和算术复合赋值运算符一样,按位运算符和赋值运算符结合组成按位运算复合赋值运算符,在语句中可以提高代码执行效率。,其他运算符,条件运算符条件运算符(?:):三元运算符,使用方法如下:varx:Number=5;vary:Number=10;varz=(x6)?x:y;trace(z);/输出5执行语句的时候,首先判断第一个表达式的返回值,若是返回值为true则执行第二个表达式,返回值为false则执行第三个表达式。,括号运算符括号运算符(()):括号运算符可以改变表达式中运算符的优先级。如:varx:Number=2*3+4;trace(x);/输出10vary:Number=2*(3+4);trace(y);/输出14,改变运算符的运算优先级后括号中的最先运算或者括住一个或多个参数并将它们作为参数传递给括号外的函数。vartoday:Date=newDate();trace(today.getFullYear();/输出当前年份functiontraceParameter(param):Voidtrace(param);traceParameter(2*2);/输出4,逗号运算符逗号运算符(,):使用逗号运算符可以在只要一个表达式的地方对两个或多个表达式计算,主要用于平行声明多个变量和在for循环语句中。如:varx:Number=1,y:Number=2,z:Number=3;相当于:varx:Number=1;vary:Number=2;varz:Number=3;在循环结构中:for(vari=0,j=0;i(大于号)、=(大于等于号)、(小于号)、=(小于等于号)等。字符串表达式中的内容可以是字符串变量,或是用双引号括起来的文本(即字符串变量值),或为字符串赋值的函数。例如,字符串表达式Hello,+Mary.表示将字符串Hello,和Mary.连接起来,组合结果是Hello,Mary.。,逻辑表达式逻辑表达式用于表示执行制定动作时应具备的条件,由逻辑运算符将数值表达式连接而成。逻辑运算符包括;trace(sum(1,2);/输出3,调用的时候,还是采用在变量名后加括号,并在其中传递实参的/形式匿名函数是表达式。这意味着匿名函数不能独立存在,只能用作语句(通常是赋值语句)的一部分。,形参和实参,在定义函数时函数名后括号中的变量名称为形式参数(简称形参),形参名可以是任何合法的标识符,使用冒号在形参名后指明参数的类型,多个形参之间用逗号隔开。调用函数的时候函数名后括号中的参数(或表达式)称为实际参数(简称实参)。形参相当于实参的占位符。,关于形参和实参需要清楚以下几点:(1)形参除了起占位作用与声明参数类型外没有任何实际意义,所以形参名可以为任何的合法标识符,和程序中己声明的变量或对象的实例名相同也没有关系。(2)实参可以是常量、变量、数组元素和表达式等,但是要求这些变量、表达式等都有确定的值,在函数调用时实际传递的是它们的值。(3)调用函数时实参的个数需和形参个数一致,当实参个数少于形参个数的时候,不会引起编译错误,但是可能得到意外的结果;当实参个数多于形参的时候,多余的参数将自动舍弃,不会引起编译错误,但是可能得到意外的结果。(4)实参的类型必须和定义函数声明的形参的类型一致,否则将引起编译错误。,函数调用,函数调用,是向函数传递实参,完成函数预定功能或返回一定值的过程。函数调用的时候,被调用的函数必须是己经存在的函数,在调用语句之前定义或者在调用语句之后定义效果一样。函数调用的一般形式如下:sum(2,3);上面的代码调用了函数名为sum的函数,并且向它传递了实参2,3。向函数传递实参需要满足在函数参数部分所讲的形参和实参的关系。调用函数有以下3种:(1)作为一个独立的语句调用sum(2,3);(2)在表达式中调用varmyNum:Number=5+sum(2,3);上面的语句中将sum(2,3)的返回值加5后再赋值给变量myNum。(3)作为函数参数调用varmaxNum:Number=max(5,sum(2,3);传递给函数max的实参是5和sum(2,3)的返回值。,函数的返回值,前面讲了在ActionScript2.0中依照严格数据类型定义函数的时候需要声明函数返回值的类型。在函数定义中使用return语句(在【语句】|【用户定义的函数】下)定义函数的返回值。,(1)函数定义是函数体中return关键字后的值,可以是一个变量值也可以是表达式,最终将返回变量或表达式的值。(2)return后面的变量或表达式的值的数据类型一定要和定义函数的时候声明的返回值的类型一致,否则将引起编译错误。(3)一个函数中可以有多个return语句,也就是可以返回多个不同的值。执行到哪一个return语句,返回哪一个语句的值。同时跳出函数体,函数体运行中止。,函数的作用域,根据函数的作用域不同,可以将其分成时间轴函数和全局函数。不同级别的时间轴函数可以通过附加路径信息的方式访问。,重要的内置函数,(1)trace()trace()函数可以接受任何类型的参数,如字符串、数字、变量、对象等。trace()这些参数的内容都转化为字符串输出到输出面板中。(2)escape()将字符串参数转换为以URL(UniformResourceLocator,即平时说的网址)编码格式进行编码的字符串。在这种格式中,将所有非字母的字符都转义为%十六进制序列,通常在需要把URL信息传递给后台程序的时候,必须把URL信息转换成单一的不含有意义的符号的字符串。(3)getTimer()利用getTimer()可以返回自影片开始播放的毫秒数,在制作Flash游戏中用于实现计时的功能很有用。,重要的内置函数,(4)isFinte()判断数值是否是无穷大,在Flash中允许的最大正值为1.79769313486231e+308(Number.MAX_VALUE),当数字大于这个数值的时候便认为是Infinity(正无穷大),允许的最小值为-1.79769313486231e+308(-Number.MAX_VALUE),当数字小于这个数值的时候便认为是-Infinity(负无穷大)。判断一个数值是不是无穷大使用isFinite(),返回值为false时,表示数字是无穷大,返回值为true时,表示数字不是无穷大。(5)isNaN()用于检测传递给isNaN()参数的数据类型是不是数字,当返回值为false时,表示参数的数据类型是数字,当返回值为true时,表示参数的数据类型不是数字。,重要的内置函数,(6)parseFloat()只接受字符串类型的参数,当字符串由纯数字组成的话,返回浮点型数字,当字符串的第一个字符不是数字的时候,返回NaN(非数字),当字符串的第一个字符是数字字符时,返回第一个字符以及和它相连数字字符组成的数字。有效整数前面的空白将被忽略,有效整数后面的非数字字符也将被忽略。(7)parseInt()和parseFloat()不同的是parseInt()返回的是整型数字。以0 x开头的字符串被解释为十六进制数字。以0开头的整数或指定基数为8的整数被解释为八进制数字。有效整数前面的空白将被忽略,有效整数后面的非数字字符也将被忽略。,函数应用实例,【例7-1】计算圆周长。本动画实例的目的是:自定义一个名称为circle的函数来计算圆的周长,并将计算结果显示在相应的文本框里。效果如图7-20所示。,图7-20动画运行效果,7.3.6程序控制语句,条件语句if语句利用if语句可建立一个可执行条件,如果条件为true,则Flash将运行条件后面花括号()内的语句。如果条件为false,则Flash将跳过花括号内的语句,而运行花括号后面的语句。if动作的位置在【命令列表框】中的【语句】|【条件/循环】中其格式为:if(condition)statement(s);其中,condition为一个计算结果为true或false的表达式。如:if(name=“tom”)trace(“A”);,switch语句,switch语句与ifelseif语句的用途一样,用于在有多个分支的选择结构中选择执行的代码块。与if语句一样,switch语句测试一个条件,并在条件返回true值时执行语句。所有switch语句都包含一个默认case。默认case中应包含一个break语句,以避免在以后添加其它case时出现落空错误。其格式为:switch(expression)caseClause:defaultClause:如:switch(number)case1:trace(A);break;case2:trace(B);break;default:trace(D);,switch语句有其自身的特点,使用switch语句应该注意几点:(l)switch关键字后面的小括号中可以用任何表达式。(2)当表达式的值和case后面的常量的值相等时,就执行case后面的代码块(特别注意的是case后面一定要是常量),当所有的case中的常量值和表达式的值都不相等时,便执行default后面的代码块。(3)每一个case中的常量值必须互不相同,否则会出现相互矛盾的现象。(4)各个case和defult的出现次序不会影响程序执行的结果。也就是说,可以先出现default再出现case。(5)在每一个case后的代码块中必须含有break关键字,用于跳出结构体,否则将一直执行下去,得到的是执行最后代码块的结果。,【例7-2】身份验证。本动画实例的目的是:使用if语句制作一个身份验证的界面,要求输入用户名和密码。效果如图7-24所示。,图7-24动画运行效果,循环语句,在条件语句中当满足条件的时候便执行代码,但是只执行一次,当需要在某个条件下多次执行代码块的时候就要用到循环语句。在Flash中循环语句包括while、dowhile、for和forin四种形式,这些动作都位于【命令列表框】中的【语句】|【条件/循环】。使用这些语句可以按指定的次数重复执行,或指定条件存在时重复执行。,while循环,while语句,执行的时候和if语句很相似。首先计算条件,如果条件计算结果为true,则在循环返回以再次计算条件之前执行一条语句或一系列语句。在条件计算结果为false后,跳过该语句或语句系列并结束循环。其格式为:while(condition)statement(s);,while语句执行下面一系列步骤。第1步至第4步的每次重复,称作循环的一次迭代。每次迭代的开始将重新测试condition,如下面的步骤所示:计算表达式condition。如果condition计算结果是true或一个转换为布尔值true的值(如一个非零数),则转到第步。否则,while语句结束并继续执行while循环后面的下一个语句。运行语句块statement(s)。转到步骤。,dowhile循环,dowhile语句的特点是先执行循环体中的循环体,然后仅当条件计算结果是true时执行语句。其格式为:dostatement(s);while(condition);如:varsum:Number=0;vari:Number=0;dosum+=2;i+;while(i10);trace(sum);/输出结果为20,执行的时候,先执行一次循环体,然后判断循环条件是否满足,当条件满足时,返回重新执行循环体,直到不再满足循环的条件为止。和while语句一样,必须有使循环趋于结束的语句或跳出循环体的语句。从上面while循环中的例子可以看出,一开始就满足循环条件的话,则它们执行后的结果是一样的,但是它们一开始就不满足条件的话,则它们执行后的结果是不一样的。,for循环,for语句在Flash中使用最广,用法最灵活,不仅可以用于循环次数已知的情况,也可以用于循环次数不确定而只给出循环结束条件的情况,可以完全代替while语句。其格式为:for(init;condition;next)statement(s);如:for(vari=0;i10;i+)trace(i);,for语句的应用形式可以简化为下面最容易理解的形式:for(循环变量赋初值;循环条件;循环变量增量)运行的时候首先对循环变量赋值,然后判断循环条件,当满足条件的时候便执行循环体中的语句,并执行循环变量增值语句。当不满足条件的时候则跳过循环体,执行后续语句。,forin循环,forin语句专门用于遍历对象的所有元素,在Flash中并不常用。其格式为:for(variableIterantinobject)statement(s);如遍历数组的全部元素:varmyNumArray:Array=1,2,3,4,5,6;for(variinmyNumArray)trace(myNumArrayi);显示6,5,4,3,2,1。注意的是采用这种方式遍历数组元素,是从数组的最后一个元素往第一个元素的方向遍历,使用于其他对象时也是这种遍历方式。,break与continue语句,出现在循环(for、for.in、do.while或while)内或与switch语句中的特定情况相关的语句块内。当在循环中使用时,break语句指示Flash跳过循环体的其余部分,停止循环动作,并执行循环语句后面的语句。当在switch中使用时,break语句指示Flash跳过此case块中的其余语句,并跳到包含它的switch语句后面的第一个语句。在嵌套循环中,break语句只跳过当前循环的其余部分,而不是跳出整个系列的嵌套循环。,循环的嵌套,一个循环体内有包含另一个完整的循环结构,称之为循环的嵌套。在Flash中四种循环可以相互嵌套,使用不同的缩进,可以知道相互嵌套的关系。建议使用循环嵌套的时候尽量不要超过3层,否则将严重影响Flash播放器执行代码的效率。如:for(vari=0;i10;i+)for(varj=0;j10;j+)/code,7.4插入ActionScript代码,在制作flash时,拖动鼠标、播放动画到某一帧、按下按钮实例或影片剪辑实例等操作都会引起一个事件的发生。使用Flashcs制作交互动画时,可以通过三种方式触发事件。第一种被称为按钮触发事件,例如,单击鼠标或按下键盘的某个按键时触发事件;第二种被称为影片剪辑触发事件,例如,当影片剪辑元件被载入或被播放到某一帧时会触发事件;第三种被称为帧触发事件,例如,当动画播放到某一帧时即触发事件。要想通过按钮、影片剪辑和帧来触发事件就必须在这三者上添加代码,现在我们分别来看一下如何添加代码。,7.4.1在按钮中插入ActionScript,设置具有交互性的按钮是制作交互式动画时最基本的功能,必须掌握。按钮动作的触发事件可以是鼠标的不同状态,如鼠标在按钮上单击、滑过、滑出、拖动等,也可以是按键操作。要想给按钮设置动作,必须先指定按钮的触发事件,然后再选择命令,只有这样才能当事件发生时,去执行设置的命令。设置按钮动作,并不会影响到其他对象。,【例7-3】设置按钮触发事件的操作步骤。(1)创建一个新文档,在舞台上创建一个按钮实例,或者选择【窗口】|【公用库】|【按钮】命令,从打开的【公用库】中将一个按钮拖动到“舞台”,并选中该按钮。(2)打开【动作】面板,选择【全局函数】|【影片剪辑控制】命令,在命令列表中,双击on命令,弹出按钮的触发事件列表,如图7-35所示,在列表中选择要加入的按钮命令。,图7-35给按钮设置on语句,按钮可以触发的事件包括以下几种:press:在按钮上按下鼠标左键时,触发动作。release:在按钮上按下鼠标左键后,在不移动鼠标的情况下松开鼠标左键时触发动作。releaseOutSide:在按钮上按下鼠标左键,然后拖动鼠标,将鼠标指针从按钮上移走,再松开鼠标左键时,触发动作。rollOver:鼠标指针由外向里滑过按钮时(末单击),触发动作。rol1Out:鼠标指针由里向外滑过按钮时(末单击),触发动作。dragOver:在按钮上按下鼠标左键,然后将鼠标指针从按钮上移走,最后再移回按钮上时,触发动作。整个过程都不要松开左键。dragOut:在按钮上按下鼠标左键,然后将鼠标指针从按钮上移走时,触发动作。整个过程都不要松开左键。keyPress:按下键盘上的某个键,触发动作,其格式为keyPress。触发事件列表框中列举了常用的键名称,例如keyPreSs表示按下空格键,触发动作。,另外,也可以给按钮添加多个触发事件,触发事件之间用半角逗号隔开。即添加完一个触发事件后,可以输入一个半角逗号,然后再添加其他触发事件。动作代码中的标点符号必须为半角。,7.4.2在帧中插入ActionScript,设置帧动作就是给某个特定的帧指定一个动作,当影片播放到该帧的时候就会自动执行指定的动作。当需要影片在进行到某一关键帧时执行特定的动作,就要在这一帧添加代码。设置了动作的帧上将出现一个小写的字母a。设置动作的帧一定是关键帧,否则设置的动作将会自动转移到它前面最近的那个关键帧上。,设置帧动作的操作步骤如下:(1)选中要设置动作的关键帧,按F9键,打开【动作-帧】面板。(2)双击树状视图中所需命令,即可添加动作。例如,双击【全局函数】|【时间轴控制】类别中的stop命令,即添加停止当前正在播放的SWF文件命令。(3)根据需要为帧设置其他动作。不同的动作会有不同的参数,也有不需要提供参数的动作。(4)选择【控制】|【启用简单帧动作】命令,使帧动作生效。然后按Ctrl+Enter组合键,播放动画进行效果测试。,另外,当我们在往帧上添加代码时最好将代码放在一个单独的层上。这样做的好处是,当动画上的代码比较多时,便于查看,也利于修改,如果不想使用代码时只需要将这个图层删除就去掉了所有的代码,十分方便。,7.4.3在影片剪辑中插入ActionScript,影片剪辑拥有独立的时间轴、有唯一的名字。为影片剪辑设置动作并制定触发事件后,当事件发生时就会执行设置的动作。此处,还可以重新指定影片剪辑的属性,例如,可以设置当载入影片剪辑时,动画变为全屏播放;当单击时,复制一个新的影片剪辑,并让它在一个新的位置出现。,【例7-4】设置影片剪辑触发事件的操作步骤。(1)创建一个新文档,在舞台上创建一个影片剪辑实例,选中该影片剪辑实例。(2)打开【动作】面板,选择【全局函数】|【影片剪辑控制】命令,在命令列表中,双击onClipEvent命令,将其添加到命令列表框中,其参数域会自动提示影片剪辑的触发事件列表,如图7-36所示,在列表中选择要加入的命令。,图7-36给影片剪辑设置onClipEvent语句,影片剪辑可以触发的事件包括以下几种:load:影片剪辑一旦被实例化并出现在时间轴中,即启动此动作。unload:在从时间轴中删除影片剪辑之后,此动作在第一帧中启动。enterFrame:以影片剪辑帧不断触发的动作。mouseMove:每次移动鼠标时启动此动作。_xmouse和_ymouse属性用于确定当前鼠标位置。mouseDown:当按下鼠标左键时启动此动作。mouseUp:当释放鼠标左键时启动此动作。keyDown:当按下某个键时启动此动作。keyUp:当释放某个键时启动此动作data:当在loadVaribles()或loadMovie()动作中接受数据时启动此动作。,7.4.4课堂实例,【例7-5】在按钮中插入ActionScript。本动画实例的目的是:当在单击按钮时,动画转到相应的帧并停止,同时显示相应的内容。如果要关闭动画,单击“退出”按钮即可。在本例中共使用了9个按钮,前8个分别以不同的触发事件命名,最后一个是“退出”按钮。实例效果如图7-37所示。,图7-37动画运行效果,【例7-6】在帧上添加代码。本动画实例的目的是:动画一开始就进行倒计时,倒计时为“0”的同时就自动载入准备好的下一个动画。(在本例中我们使用刚做好的“在按钮中插入ActionScript.swf”实例)利用自动载入其他动画可以实现多个动画自动连续播放。实例效果如图7-44所示。,图7-44制作背景,【例7-7】在影片剪辑中插入ActionScript。本动画实例的目的是:在播放动画的过程中,实现当鼠标左键按下时可以将影片

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论