资源预览内容
第1页 / 共51页
第2页 / 共51页
第3页 / 共51页
第4页 / 共51页
第5页 / 共51页
第6页 / 共51页
第7页 / 共51页
第8页 / 共51页
第9页 / 共51页
第10页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第七章 flash动画脚本基础7.1 动作面板简介动作面板简介l演示说明7.2 常用术语常用术语l动作动作 在播放SWF文件时指示SWF文件执行某些任务的语句。 例如:例如:start();(); stop()等。()等。l事件事件 在很多情况下,动作不会独立执行,而是要提供一定的条件,就是要有一定的事情对该动作进行触发,才会执行这个动作,其触发作用的事情在ActionScript中称为事件。例如:鼠标的移动、按下与放开;例如:鼠标的移动、按下与放开;键盘上某键的敲击等键盘上某键的敲击等。l对象对象 是属性和方法的集合。每个对象都有各自的名称,并且都是特定类的实例。l类类 一系列相互之间有关联的数据的集合称为一个类。l属性 用于定义对象的特性。例如:例如:_visible用于定义影片剪辑是否可见用于定义影片剪辑是否可见,所有所有影片剪辑都有此属性。影片剪辑都有此属性。l方法方法 被指派给某一个对象的函数,在一个函数被指派给一个对象后,它便可以作为这个对象的一个方法调用。对象命名规则图表后缀后缀对象类别对象类别_mc影片剪辑(movie clip)_btn按钮(button)_txt文本字段(TextField)_sound声音(sound)l函数函数 是可以向其传递参数并能够返回值的可重复使用的代码块。l实例实例 属于某个类的对象。一个类可以产生很多个属于这个类的实例。类的每个实例均包含该类的所有属性和方法。 例如:所有影片剪辑都是例如:所有影片剪辑都是MovieClip类的类的实例,他们都有诸如实例,他们都有诸如_visible,_alpha这样这样的属性的属性,以及以及gotoAndPlay()和()和getURL()这样的方法。()这样的方法。l变量变量 是用来存储信息的存储器,脚本程序中的变量可以保存所有类型的数据,包括字符串、数值、布尔值(true或false)等。l常量常量 也称为常数,和变量相对应,在程序编写过程中不能被改变,常用于数值的比较。l关键字关键字 是有特殊含义的保留字。不能使用关键字作为标识符。7.3 Flash编程基础编程基础l在flash中,编写程序不可缺少的内容主要有事件、动作和对象。例如下面的语句: on(press) gotoAndplay(“scene 1”,1) l但并不是所有的语句都具备这三个因素,一些语句可以只具有其中的一个或几个因素。7.4 Action Script基本语法规则基本语法规则一、点语法一、点语法l在ASP中,点“.”被用来指明与某个对象或影片剪辑相关的属性和方法,也用于标识指向影片剪辑或变量的目标路径。点语法表达式由对象或影片剪辑实例名开始,接着是一个点,最后是要指定的属性,方法或变量,例如,例如,“dog._alpha”表示调用对象表示调用对象dog的的_alpha属性。属性。再例如:要使舞台上的实例“bird”移动到第24帧并停止在那里,可以使用以下程序: bird.gotoAndstop(24);二、大括号l在ASP中,用“ ”把程序分成一块一块的模块,可以把括号中的代码看做一句完整的表达。l例如:on(press) gotoAndplay(“scene1”,1); 三、分号和小括号l分号:在ASP中,用分号来结束一行语句。l小括号:“()”用来放置参数。例如:gotoAndPlay(10) 另外可以通过使用括号来改变ASP操作符的优先级顺序。四、关键字和注释l关键字:前面已经讲过,在命名变量、函数或标签时,不能使用flash 中的保留关键字。这些关键字专门用于脚本语言中,并且必须以小写形式书写,不能写成大写形式。l注释:注释语句以双斜杠“”开始。为语句添加注释可以帮助其他人理解用户编写的脚本。ASP中的关键字breakelseintypeofcasefornewvarcontinuefunctionreturnwhileclassextendsimportintrinsicdefaultgetinstanceofprivatedynamicimplements interfacepublicsetstaticthisvoiddeleteifswitchwith7.5 事件l编写程序不可缺少的内容主要有事件、动作和对象。在flash中,将任何导致动作发生的事情都称为事件。事件包括两类:鼠标事件 帧事件一、帧事件l举例说明。l注意:在注意:在flash中,只有关键帧才可以分配动作中,只有关键帧才可以分配动作 ,而普通帧和空白帧是不可以分配动作的。而普通帧和空白帧是不可以分配动作的。 定义关键帧动作的操作比较简单,不用为关键帧定义关键帧动作的操作比较简单,不用为关键帧分配事件,可以直接将语句加入到右侧的语句栏分配事件,可以直接将语句加入到右侧的语句栏中。中。l在默认情况下,flash制作的动画播放到最后,会自动返回到第一帧,并且自动重新播放。但多数情况下,我们想让flash动画播放完成之后,停在最后的位置,这就需要在最后一帧加入stop语句。二、鼠标事件l鼠标事件即响应鼠标的动作,能够响应鼠标事件的对象有按钮事件和影片剪辑按钮事件两种类型。lA、定义按钮事件:举例说明。lB、定义影片剪辑的鼠标事件。7.6 控制电影动作l在flash影片控制中包括最常用的动作,用于控制影片或影片剪辑元件中的时间轴。l利用这几种常用的动作可以轻松实现交互式影片中最为常见的效果。7.6.1 play语句l该语句的语法结构为:play()l并且该语句没有参数,它的作用是使动画开始播放。l举例演示。7.6.2 stop语句lstop动作用于使影片停止播放。它既可以应用于影片中的时间轴,达到控制影片停止的目的。也可以应用于影片剪辑元件中的时间轴,达到控制影片剪辑元件停止的目的。l举例演示。7.6.3 goto语句lgoto动作使电影跳转到时间轴上指定的帧或场景。分为gotoAndPlay和gotoAndStop两种。lgotoAndPplay的作用将播放指针指向特定的场景和帧,并且从此开始播放,如果场景没有被指定,则播放指针指向当前场景的特定帧。l该语句的语法结构为: gotoAndPlay(scene,frame)lgotoAndStop语句的作用是当播放到指向特定的场景和帧时,停止动画的播放。如果没有指定场景,则停止指针将指向当前场景的特定帧。l语法结构为; gotoAndStop( scene,frame)7.6.4 stopAllSound语句lstopAllSound动作用于停止影片中所有的声音效果,而不影响影片的视觉效果。该语句没有参数,通常用于制作静音按钮。7.6.5 nextFrame和prevFramelnextFrame动作用于使影片播放到下一帧停止。lprevFrame动作用于使影片返回到上一帧并停止。lnextFrame和prevFrame语句没有参数。它们一般应用于鼠标事件中,控制影片的前进或后退。7.6.6 on语句lon语句用于设置鼠标的各种事件,实际上是事件而不是动作。l双击on语句,在脚本编辑区出现on事件提示表,在提示列表中包含了应用于按钮实例的各种事件。7.6.7 路径l在flash中用ASP编辑程序脚本时,经常需要对某对象实施一种动作或在某种场合下调用某对象。为了找到不同位置的对象,就需要引入路径的概念。lFlash影片剪辑元件都具有一个特性:元件内可以嵌套另一个元件,为了说明这些元件的位置,引入“路径”的概念。l在flash中路径分为 绝对路径 相对路径A、绝对路径l绝对路径是在读取或调用任何变量或影片剪辑时,以主时间轴为起点,从外到内逐级用点语法写下路径。在flash中主场景的时间轴用_root来表示。l例如,主场景内有一个名为Ball的影片剪辑元件,其路径可写为_root.Ball,当指定该实例转到第10帧处执行时,可以写成_root.Ball.gotoAndplay(10)。若Ball元件中还包含一个影片剪辑元件Ball01,而Ball01中也包含一个影片剪辑元件Ball001,若要使Ball001元件停止播放时,就可写成_root.Ball. Ball01. Ball001.stop()。B、相对路径l相对路径是以当前发出指令的对象所在的时间轴为起点,去调用其他电影剪辑及其变量。在flash中,相对路径是以_parent开头的。 _parent代表父目录,也就是包含该元件所在的时间轴。l当在Ball01元件上要控制Ball001停止播放时,使用相对路径就可以写成_parent .Ball001.stop()。7.7 动作脚本中的数据类型动作脚本中的数据类型l定义 描述变量或动作脚本元素可以包含的信息的种类。1、基本数据类型:字符串、数值、布尔值等,基本数据类型都有一个不变的值,可以保存它所表示元素的实际值。2、引用数据类型:指影片剪辑和对象,它们的值可能发生更改,因此它们包含对该元素的实际值的引用。字符型(string)l字符型变量用来存储字符型数据,例如,name=“iming”。字符型数据是一个字符(字母、数字或标点符号)序列。在ASP语句中输入字符串,需要使用单引号或双引号括住。l练习:判断下面的数据是否是字符型。name=“小赵”;home=“3,street”;life=“3?”;name=john数值型和逻辑型l数值型(Number):用来存储数值型数据,如size=200。l逻辑型(Boolean):用来存储逻辑型数据,如rain=true。逻辑型数据包括true和false。逻辑值与逻辑操作一起,常用在控制脚本运行的比较语句中。对象型和影片剪辑型l对象型(Object):对象是属性的集合,不同的对象包含有不同的属性,每个属性都有名称和值。属性值可以是任何flash数据类型,甚至可以是对象数据类型。这样可以将一个对象嵌套在另一个对象之中。要指定对象及其属性,可以使用(.)运算符例如:在以下代码中,例如:在以下代码中,hoursWorked是是weeklyStats的属性,而后者是的属性,而后者是employee的属性。的属性。 employee.weeklyStats.hoursWorkedl影片剪辑型(Movieclip):用来存储影片剪辑型数据。它是惟一引用图形元素的数据类型。7.8 变量变量l定义定义 是用来存储信息的存储器,脚本程序中的变量可以保存所有类型的数据,包括字符串、数值、布尔值(true或false)等。7.8.1 变量命名规则l变量的命名主要遵循以下规则:变量名由字母(az,AZ),数字(09)和下划线“-”、$组成,中间不允许有空格,并且必须以字母或下划线开头。变量不能和关键字同名,并且不能是布尔值。并且在flash中关键字都是小写形式,若写成大写,flash会将它视为普通字符,而不作为关键字。例如,to是一个关键字,而TO却不是。变量名在其作用范围内必须是唯一的。在使用变量时应遵循“先定义后使用”的原则,即在脚本中必须先定义一个变量,才能在表达式中使用这个变量。flash对程序中大小写字母进行识别,即BOOK不等于book,建议尽量使用具有一定含义的变量名。 练习:data; I; J.smith; $zzu; 3der; program_1; sum; abc; a=b; else; lotus_1_2_3; _123; for.7.8.2 变量定义与作用域l一、变量的定义l在flash中不必定义变量的类型,flash会在赋值时自动定义变量的类型。l按作用范围,可分为 全局变量(Global) 局部变量(Local)l我们常用global.变量名来定义全局变量,l我们常用var语句来定义局部变量。全局变量和局部变量的语法结构l定义全局变量的语法格式为:global.变量名例如:global.myName=“lucy”l定义局部变量的语法结构:var变量名=表达式例如: var m=20 7.8.3 变量作用域l前面已经学过,变量分为全局变量和局部变量,变量只能在其作用域中被引用。一个全局变量可以在所有的时间轴中共享,而一个局部变量仅在所属的代码块(即一个大括号)内作用。l在程序中局部变量被大量地使用,因为使用局部变量可以有效地防止名称冲突。但在有些情况下,只能使用全局变量。l例如,要在一个代码块中引用另一个代码块中的例如,要在一个代码块中引用另一个代码块中的变量,或者要在整个动画中传递某个变量的值。变量,或者要在整个动画中传递某个变量的值。7.9 运算符和表达式一、运算符和表达式运算符是能够提供对数值、字符串、逻辑值进行运算的关系符号。在flash中运算符有数值运算符,字符串运算符,比较运算符,逻辑运算符,位运算符和赋值运算符。表达式是用运算符将常量、变量和函数以一定的运算规则组织在一起的计算式。例如a=b。数值运算符l数值运算符可以执行加、减、乘、除运算,也可以执行其他算术运算。l如果加号两边的操作数如果加号两边的操作数其中之一属于其中之一属于“字符串字符串”类型,则类型,则“”运算运算符将变成字符串连接指符将变成字符串连接指令令例如:var str”20”+36 var str= “num”+36运算符执行的运算+加法-减法*乘法/除法%求模(除后的余数)+递增-递减比较运算符l用于比较表达式的值,然后返回一个布尔值。这些操作符最常用于判断循环是否结束或用于条件语句中。运算符执行的运算小于 大于=小于或等于=大于或等于逻辑运算符l逻辑运算符会比较布尔值,然后返回第3个布尔值。例如,如果两个操作数为true,则逻辑与运算符(&)将返回true。如果其中一个或两个操作为true,则逻辑“或”运算符(|)将返回true。运算符执行的运算&逻辑“与” |逻辑“或” !逻辑“非”赋值运算符l用赋值“=”运算符给变量指定值,如,x=3;scale=60。 运算符的使用1、运算符的优先级 当在一个表达式中使用了多个运算符时,就要遵循一定的规则。例如,“*”要在“+”之前被执行,因为乘法运算比加法运算有更高的优先级,ASP是严格遵循这个优先级来决定哪个运算符先执行,哪个后执行的。 例如:myScore=(30+2)*2 程序的执行结果是? 而: myScore=30+2*2 该程序的执行结果是?2、在运算过程中,如果运算符的优先级别相同,则从左到右计算。而赋值表达式是从右向左计算。7.10 startDrag语句lstartDrag语句可以使被定义的对象跟随鼠标运动。 startDrag语句的格式为: startDrag(target,lock,left,top,right,bottom) Target:也就是对象,指要拖动的影片剪辑的实例名称。一次只能定义一个影片剪辑实例。 lock 表示影片拖动时是否中心锁定在鼠标,值有 true,false ; true 锁定, false 不锁定。 left,top,right,bottom 就是影片拖动的左,上,右,下的范围。我们举个例子说明一下: startDrag(mc,true,100,100,300,300); 就是拖动影片 mc ,把影片中心锁定在鼠标,拖动的范围是( 100 , 100 ) ( 300 , 300 )的矩形框。 如果这样写: startDrag(mc,true); 拖动影片没有范围限制; 7.10.1 利用on、startDrag和stopDrag语句制作可以拖动的影片剪辑lStopDrag语句的使用方法与startDrag语句类似。l打开方法:双击“动作”“影片剪辑控制” “stopDrag”。7.11 浏览器和网络控制命令浏览器和网络控制命令1、fscommand命令l它可以实现对影片浏览器,也就是Flash Player的控制。l语法格式:lfscommand(命令,参数);fscommand可以执行的命令和参数可以执行的命令和参数命令参数功能说明quit 没有参数关闭影片播放器fullscreentrue or false 控制是否让影片播放器为全屏播放allowscaletrue or false false让影片始终以100%的方式呈现,不会随着播放器窗口的缩放而缩放showmenu true or false true代表当用户在影片画面上右击时,可以弹出全部命令的右键菜单,false表示只显示”About Shockwave”信息exec应用程序的路径从flash播放器执行其他应用软件trapallkeys true or false 用于锁定是否让播放器锁定键盘的输入,true为是,false为不是.2、getURL命令命令l作用:为事件填加超级链接,包括电子邮件链接为事件填加超级链接,包括电子邮件链接l格式:lgetURL(URL,Window,method);lurl:String - 可从该处获取文档的 URL。lwindow:String 可选 - 指定应将文档加载到其中的窗口。您可输入特定窗口的名称,或从下面的保留目标名称中选择: l_self 指定当前窗口中的当前帧。 l_blank 指定一个新窗口。 l_parent 指定当前帧的父级。 l_top 指定当前窗口中的顶级帧。 lmethod:String 可选 - 用于发送变量的 GET 或 POST 方法。3、loadMovie和和 unloadMovielloadMovie命令是载入影片, unloadMovie命令是卸载由loadMovie载入的影片。lloadMovie命令格式: loadMovie(URL,level/target,variblesl)lURL:要载入的SWF文件、JPEG文件的绝对或相对URL地址。lTarget:目标电影剪辑的路径。目标电影剪辑将被载入的电影或图片所替代。lLevel:指定载入到播放器中的电影剪辑所处的级别。阶层阶层l在flash中,除了一层层的时间轴路径外,还有“阶层”概念。阶层专门用于“载入影片剪辑”以及“复制影片剪辑”。l当从外部载入很多影片时,就无法利用时间轴上的“图层”来安排这些影片播放的前后顺序了,此时,可使用阶层来安排它们的前后顺序。阶层的数字愈大就愈靠近,会遮住阶层数字小的影片内容。l在同一层中,同时只能有一部影片,即如果阶层2中已有一个影片,当再向此阶层中载入一个影片时,后载入的影片将完全取代阶层中的原影片。l最原始的主场景是阶层数是0,在ASP中使用_level0来指定,阶层1就使用_level1,阶层2使用_level2,依次类推。当需要命令阶层2中的ball开始播放时,代码为_level2.ball.play()。l_level和_root并不是重复的,每个阶层中都是一个完整的动画,都有自己的_root、场景和元件。用户不能自己新增阶层来制作动画,只有在使用“载入影片剪辑”和“复制影片剪辑”指令时由系统产生新的阶层。4、loadVariablesl作用:从外部文件读入数据。外部文件包括文本文件、由CGI脚本生成的文本、ASP、PHP或PERL脚本。l格式:loadVariables(url,level/“target”,variables)lurl:变量要载入的绝对或相对URL地址。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号