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