《Flash8第11章ActionScript编程基础.ppt》由会员分享,可在线阅读,更多相关《Flash8第11章ActionScript编程基础.ppt(89页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第11章章 ActionScript编程基础编程基础11.1 ActionScript简介简介 11.2 动作面板动作面板 11.3 数据与运算数据与运算 11.4 ActionScript中的常用动作中的常用动作 11.5 播放控制播放控制 11.6 拖曳效果拖曳效果 过关练习过关练习 11.1ActionScript简介ActionScript是一种动作脚本语言,使用它不仅可以实现一些特殊效果,还可以增加动画的交互性。Flash8中的ActionScript是2.0版,它支持更多的功能,如支持类、继承等,并且还遵循向下兼容原则,能够识别在较早版本的Flash中编写的ActionScrip
2、t。11.1.1ActionScript的常用术语和其他脚本语言一样,ActionScript也有着自身的专用术语,下面简单介绍ActionScript的一些常用术语。(1)动作。动作是在播放SWF文件时,指示该文件执行某些任务的语句。例如,gotoAndPlay动作用于跳转并播放动画。(2)事件。事件是在播放SWF文件时发生的动作。例如,装载影片剪辑、单击按钮和用键盘输入等。(3)常量。常量是不变的元素。例如,常量Key.TAB始终代表键盘上的Tab键。(4)函数。函数是可以传递参数并且返回值的可重复使用的代码块。例如,函数getVersion()可以返回当前正在播放动画的Flash播放器的
3、版本。(5)数据类型。数据类型指变量或ActionScript元素的种类。例如,变量a在a=“Hello”代码中的数据类型是字符串。(6)运算符。运算符是通过一个或多个值计算新值的术语。例如,加法运算符可以将两个或更多个值相加到一起,从而产生一个新值。(7)表达式。表达式是运算符和操作数的任意合法组合。例如,year+“年”+month+“月”+day+“日”和“Flash8”“Flash8”等。(8)标识符。标识符用于表示对象、函数、属性等的名称,它的第一个字符必须是字母、下画线“_”或美元符号“$”。例如,firstQuestion是一个合法的标识符,而10 xyz不是合法的标识符。(9)
4、实例。实例是属于某个类的对象,每个实例都包含该类的所有属性和方法。例如,所有的影片剪辑都是MovieClip类的实例,因此,均拥有该类的属性(如_alpha和_visible)和方法(如gotoAndPlay和getURL)。(10)实例名称。实例名称是实例在脚本中的唯一名称。例如,在以下代码中影片剪辑实例的实例名称为csquare。doduplicateMovieClip(“csquare”,“csquare”+i,i)i=i+1;while(i=30;account=MyObjectaccount;4小括号小括号“()”主要用于重置表达式运算符的优先级或者放置函数的相关参数,例如:(a+3
5、)*4;functionLine(x1,y1,x2,y2);小括号“()”还用于计算点运算符左边的表达式,例如,以下代码计算得出newcolor(this)的值,并创建了一个新的颜色对象。onClipEvent(enterFrame)(newcolor(this).setRGB(0 xffffff);如果在以上代码中不使用小括号,为了计算出newcolor(this)的值,需要将它们更改如下:onClipEvent(enterFrame)mycolor=newcolor(this);mycolor.setRGB(0 xffffff);5分号分号“;”用于表示语句的结束,但如果将分号省略,系统仍
6、然能够成功地编译脚本,例如:Mouse.hide();startDrag(“cs”,true);6注释注释是用户使用简单易懂的句子对代码进行的注解,编译器不会对它进行求值运算。如果要添加注释,必须在注释前插入“/”符号,例如:/modifythestructuresoverallsizethisnewnode._xscale=50;thisnewnode._yscale=50;7区分大小写在Flash8中,所有的关键字、类名、变量、方法名、外部脚本等均区分大小写。例如,book和Book将被视为不同内容。在ActionScript的编写过程时,应该遵守一致的大小写约定,并养成一个良好的习惯。例
7、如,以下代码中的p没有区分大小写,产生了拼写错误,因此,该行代码是无法被编译的。setproperty(ball,_xscale,scale);11.2动作面板ActionScript与JavaScript有着相似的结构,但它的编写较JavaScript要容易得多,每一行代码都可以直接从动作面板中调用。11.2.1打开动作面板选择“窗口”“动作”命令或按F9键即可打开动作面板,如图所示。脚本导航器动作工具箱图11.2.1 动作面板脚本输入区在默认情况下,Flash8会启动“显示代码提示”功能,实时地检测输入的代码,并给出相关的提示信息,如图所示。图11.2.2 显示代码提示用户可以直接引用显示
8、的代码提示,从而一方面可以减少错误的出现,另一方面也可以提高工作效率。图显示的是工具条式的提示,当输入一个对象的名称,然后在其后输入“.”时,会出现一个选单式的提示(见图),包含了各种可用属性和方法的选项,用户可以用键盘的上下方向键进行选取。图11.2.3 选单式的提示11.2.2动作面板简介下面介绍动作面板的组成以及各组成部分的功能。(1)动作工具箱。动作工具箱以分类方式列出了所有能够使用的动作,用户可以通过双击或拖动的方式将它们置于右侧的脚本输入区内。(2)脚本输入区。脚本输入区是添加、删除和修改程序代码的地方。(3)脚本导航器。脚本导航器以层级方式显示文件中的所有代码(见图),从而便于用
9、户快速查找并编辑。(4)“将新项目添加到脚本中”按钮。在Flash8中,除了可以通过动作工具箱添加动作以外,还可以单击“将新项目添加到脚本中”按钮,在弹出的下拉菜单中选择最后一级子命令(见图),然后单击鼠标左键进行添加。图11.2.4 脚本导航器的层级显示图11.2.5 选择最后一级的子命令(5)“查找”按钮。单击该按钮,将弹出如图所示的“查找和替换”对话框,用于脚本的查找与替换。1)“查找内容”:输入要查找的内容。2)“替换为”:输入用来替换的内容。3)“查找下一个”:查找内容,使被查找到的内容处于选中状态。图11.2.6 “查找和替换”对话框4)“替换”:对查找到的符合条件的内容进行逐一替
10、换。5)“全部替换”:对查找到的符合条件的内容进行一次性的全部替换。6)“关闭”:关闭对话框。7)“区分大小写”:设置在进行查找和替换操作时,是否区分字母的大小写。(6)“插入目标路径”按钮。单击该按钮,将弹出如图所示的“插入目标路径”对话框,显示当前文件中的所有影片剪辑实例,选择需要的实例,然后单击“确定”按钮,该实例的目标路径就会添加在脚本输入区中。图11.2.7 “插入目标路径”对话框(7)“语法检查”按钮。单击该按钮,可以检查编写的脚本中是否存在错误,如果存在,将弹出如图所示的提示框,并在输出面板中列出;如果不存在,将弹出相应提示框,如图所示。图11.2.8 存在错误时的提示框 图11
11、.2.9 不存在错误时的提示框(8)“自动套用格式”按钮。单击该按钮,按Flash8内置的格式编排脚本,例如,在语句的前面空两个格,如图所示。(9)“显示代码提示”按钮。用于启动“显示代码提示”功能。(10)“调试选项”按钮。用于断点的删除和设置。(11)“脚本助手”按钮。单击该按钮,将动作面板切换至脚本助手模式,使用户可以在不太了解ActionScript的情况下编写脚本,如图所示。图11.2.10 自动套用格式图11.2.11 脚本助手模式下的动作面板(12)“帮助”按钮。单击该按钮,将打开帮助面板,提示有关帮助信息,如图所示。图11.2.12 帮助面板11.2.3ActionScript
12、的添加Flash8允许用户为帧、影片剪辑或按钮添加ActionScript,操作步骤如下:(1)选中要添加ActionScript的帧、影片剪辑或按钮。(2)选择“窗口”“动作”命令,打开动作面板。(3)用以下方法之一添加ActionScript。1)在动作工具箱中找到所需的动作,双击鼠标左键。2)在动作工具箱中找到所需的动作,将其拖动到脚本输入区中。3)在脚本输入区中直接输入。(4)进行相关的设置。在帧或影片剪辑中添加了ActionScript之后,当动画播放到它所在的位置时,就会执行相应的程序;在按钮中添加了ActionScript之后,只有单击了该按钮,程序才能够被执行,例如,如图所示的
13、动画在打开后并不直接播放,在单击“play”按钮后才播放。在Flash8中,可以同时为多个按钮添加ActionScript程序,使它们各自有独立的动作,不会相互影响。图11.2.13 通过按钮控制动画的播放11.3数据与运算ActionScript作为一种编程语言,它拥有自己的常量、变量、数据类型和运算符,并按一定的规则组合在一起,成为表达式,下面分别进行介绍。11.3.1常量常量也叫常数,是在程序中始终保持不变的元素。例如,常量BACKSPACE,ENTER,SHIFT,RETURN,SPACE和TAB是Key对象的属性,指代键盘的按键。若要测试用户是否按下了Enter键,可以使用以下代码:
14、if(Key.getCode()=Key.ENTER)alert=“Areyouready?”;controlMC.gotoAndStop(5);11.3.2变量变量是一种可以保留任何数据类型值的标识符,命名变量必须遵守以下规则:(1)变量名必须是一个标识符。(2)变量名不能是一个关键字或布尔值(true或false)。(3)变量名在它的作用范围内必须是唯一的。当首次定义一个变量时,最好为该变量指定一个已知值,即对变量进行初始化操作,从而使用户更容易地跟踪和比较变量的值。如果变量没有得到初始化,可能会产生错误。例如,以下代码中的abcd没有被初始化,因此,gotoAndPlay语句将会被错误地
15、执行,跳转到一个不正确的位置。gotoAndPlay(abcd);11.3.3数据类型数据类型指某个变量或ActionScript元素能够拥有的信息类型,在ActionScript中,常用的数据类型有数值、字符串和逻辑值3种。(1)数值型数据类型。该类数据类型是一个具有数学意义的数,可以用+,-,*,/,%,+,-等算术运算符进行处理,例如:total=300*price;i=i+1;用户还可以使用Math对象的方法来运算数值。例如,以下代码使用sqrt(平方根)方法返回数字100的平方根。Math.sqrt(100);(2)字符串型数据类型。该类数据类型是由字母、数字、标点等组成的字符序列,
16、在ActionScript中,应将字符串括在单引号或双引号中。例如,以下代码中的TianCuiYun就是一个字符串。myname=TianCuiYun;用户可以使用“+”运算符连接两个字符串,并且在连接时,ActionScript会精确地保留字符串两端的空格。例如,以下代码在执行后的结果为c=“GoodMorning”。a=“Good”;b=“Morning”;/在字母M前有一个空格c=a+b;(3)逻辑型数据类型。该类数据类型可以是true或false,有时,ActionScript也把true和false转化为1和0。逻辑型数据类型常与逻辑运算符一起,来判断和控制程序脚本的流向。例如,在以
17、下代码中如果变量Name和变量Password的值都为true,则播放影片剪辑。onClipEvent(enterFrame)if(Name=true)&(Password=true)play();11.3.4运算符运算符指能够对一个或多个数据进行运算的符号,下面介绍运算符的分类、优先级和结合律。1运算符的分类按照功能的不同,可以将运算符分为数值运算符、比较运算符、逻辑运算符、按位运算符、等于运算符、赋值运算符、点运算符和数组访问运算符8种。(1)数值运算符:用于对数值进行加、减、乘、除和其他运算,如表11.1所示。表11.1 数值运算符递增运算符“+”应用在操作数的前面或后面,将执行不同的运
18、算。例如,在以下代码中,age首先递增,然后再与数字20进行比较。+age=20在以下代码中,age在执行比较之后递增。age+=20(2)比较运算符:用于比较表达式的值,然后返回一个逻辑值,如表11.2所示。表11.2 比较运算符比较运算符常用于循环语句和条件语句中。在以下代码中,如果变量score的值大于100,则加载winner.swf;否则加载loser.swf。if(score100)loadMovieNum(“winner.swf”,5);elseloadMovieNum(“loser.swf”,5);(3)逻辑运算符:用于比较两个逻辑值(true或false),并返回第三个逻辑值
19、,如表11.3所示。表11.3 逻辑运算符对于逻辑与,只有当所有操作数的值都是true时,才能返回true;而只要有一个或一个以上的false,其返回结果将为false。例如,在以下代码中只有当x小于或等于50,并且i大于10时,才能够播放动画。if(x4number1=number2“Flash8”“Flash8”“false”4&97_totlalframes=_framesloaded|_totalframes=10011.4ActionScript中的常用动作Flash8内置了数百条动作指令,通过它们可以实现非常强大的交互功能,下面介绍ActionScript中的常用动作。11.4.1
20、gotogoto动作用于帧或场景间的跳转,根据跳转后状态的不同,可以分为gotoAndPlay和gotoAndStop两种。1gotoAndPlaygotoAndPlay用于使动画跳转到某场景的某一帧,并开始播放。其语法格式如下:gotoAndPlay(“场景”,帧);(1)场景:用于指定要转到的场景。(2)帧:用于指定要转到帧的编号或标签。例如,以下代码将使动画跳转到第15帧并开始播放。on(release)gotoAndPlay(15);2gotoAndStopgotoAndStop用于使动画跳转到某场景的某一帧,并停止播放。其语法格式如下:gotoAndStop(“场景”,帧);例如,以
21、下代码将使动画跳转到场景2的第5帧并停止播放。on(release)gotoAndStop(“场景2”,5);11.4.2playplay动作用于使动画从当前帧开始播放。其语法格式如下:play();例如,以下代码展示了一个鼠标事件,它使动画从当前帧开始播放。on(release)play();11.4.3stopstop动作用于停止动画的播放。其语法格式如下:stop();例如,以下代码展示了一个鼠标事件,它使动画停止播放。on(release)stop();11.4.4getURLgetURL动作用于将指定的URL加载到浏览器窗口,或者将变量数据发送给指定的URL。其语法格式如下:getU
22、RL(“URL”,“窗口”);(1)URL:用于设置链接网页的地址,可以用相对或绝对路径表示,如http:/。(2)窗口:用于设置链接网页的打开方式,有_self,_blank,_parent和_top四种方式可以选择。例如,以下代码将在新窗口中打开URL为的网页。on(release)getURL(“http:/”,“_blank”);11.4.5fscommandfscommand动作用于将quit,fullscreen,allowscale,showmenu,exec或trapallkeys命令发送到FlashPlayer,并执行相关操作。其语法格式如下:fscommand(“命令”,“
23、参数”);其中,命令和参数以及功能如表11.7所示。表11.7 fscommand预定义的命令和参数例如,以下代码将隐藏FlashPlayer的菜单栏,如图所示为隐藏前后的效果。fscommand(“showmenu”,“false”);隐藏前 隐藏后图11.4.1 隐藏Flash Player菜单栏前后的效果11.4.6duplicateMovieClipduplicateMovieClip动作用于在动画播放期间,动态地复制影片剪辑实例。其语法格式如下:duplicateMovieClip(“目标”,“新名称”,深度);(1)目标:用于设置要复制影片剪辑实例的目录路径。(2)新名称:用于设置
24、影片剪辑实例副本的名称。(3)深度:用于设置影片剪辑实例副本在动画中的先后顺序,若其值为0,则复制出的影片剪辑副本将代替原影片剪辑实例。例如,以下代码将复制名为MMC的影片剪辑实例,并将副本命名为MMCD,同时用它替换原影片剪辑实例MMC。on(release)duplicateMovieClip(“/MMC”,“MMCD”,0);11.4.7setPropertysetProperty动作用于设置影片剪辑实例的大小、旋转、位置、名称和透明度等。其语法格式如下:setProperty(“目标”,属性,“值”);(1)目标:用于设置要改变属性的影片剪辑实例的目录路径。(2)属性:用于设置要调整的
25、属性,其选项和功能如表11.8所示。(3)值:为所选的属性设置值。例如,以下代码将影片剪辑实例MMC的透明度设置为50%。on(release)setProperty(“/MMC”,_Alpha,“50”);表11.8 各属性选项和功能11.4.8tracetrace动作用于获取影片剪辑的名称、位置、大小和透明度等属性。其语法格式如下:trace(“目标”,属性);(1)目标:用于设置影片剪辑实例的名称。(2)属性:用于设置实例的位置、大小和透明度等。例如,以下代码将获取影片剪辑实例cs的位置、透明度和大小属性。trace(cs._x);trace(cs._y);trace(cs._alpha
26、);trace(cs.width);trace(cs.height);11.5播放控制本例将制作播放控制效果。在制作过程中,将用到stop,gotoAndPlay和on动作,效果如图所示。图11.5.1 效果图操作步骤如下:(1)启动Flash8软件。(2)按Ctrl+J键,弹出“文档属性”对话框,设置“尺寸”为“115px115px”,“背景颜色”为“白色”,“帧频”为“12”,单击“确定”按钮。(3)选择“窗口”“公用库”“按钮”命令,打开系统自带的按钮库,如图所示。(4)从中拖动“playbackflat”“flatgreyplay”元件到舞台中,如图所示。图11.5.2 系统自带的按钮
27、库图11.5.3 拖入“flat grey play”元件(5)选择工具箱中的文本工具,在属性面板中设置字体为“方正姚体”,字体大小为“15”,文本颜色为“黑色”,在按钮的下面输入文本“单击按钮播放动画”。(6)选择“窗口”“动作”命令,打开动作面板,如图所示。(7)选中第1帧,在动作面板中输入以下代码:stop();图11.5.4 动作面板(8)选中按钮,在动作面板中输入以下代码:on(release)gotoAndPlay(“场景2”,1);(9)选择“窗口”“其他面板”“场景”命令或按Shift+F2键,打开场景面板(见图),单击其中的“添加场景”按钮,如图所示。(10)选中场景2的第1
28、帧,选择“文件”“导入”“导入到舞台”命令,弹出“导入”对话框,导入一段动画。(11)按Ctrl+Enter键预览,效果如图所示。图11.5.5 场景面板 图11.5.6 添加场景11.6拖曳效果本例将制作拖曳效果。在制作过程中,将用到on,startDrag和onClipEvent动作,效果如图所示。图11.6.1 效果图操作步骤如下:(1)启动Flash8软件。(2)按Ctrl+J键,弹出“文档属性”对话框,设置“尺寸”为“550px450px”,“背景颜色”为“黑色”,单击“确定”按钮。(3)按Ctrl+F8键,弹出“创建新元件”对话框,在“名称”文本框中输入“图片”,在“类型”选项区中
29、选中“影片剪辑”单选按钮,如图所示。图11.6.2 “创建新元件”对话框(4)单击“确定”按钮,进入该元件的编辑窗口。选择“文件”“导入”“导入到舞台”命令,弹出“导入”对话框,导入一张图片到舞台中,并改变它的大小和位置,如图所示。(5)按Ctrl+F8键,弹出“创建新元件”对话框,在“名称”文本框中输入“按钮”,在“类型”选项区中选中“按钮”单选按钮。(6)单击“确定”按钮,进入该元件的编辑窗口,在舞台中绘制如图所示的图形。(7)重复步骤(3)的操作,创建一个名为“影片”的元件,单击“确定”按钮,进入该元件的编辑窗口。(8)选择“窗口”“库”命令,打开库面板,从中拖动“按钮”元件到舞台中。图
30、11.6.3 导入并调整图片 图11.6.4 绘制图形(9)选择“窗口”“动作”命令,打开动作面板,如图所示。图11.6.5 动作面板(10)选中“按钮”实例,在动作面板中输入以下代码:on(press)startDrag(“”,true);dragger=true;on(release,releaseOutside)stopDrag();dragger=false;(11)单击“场景1”图标,返回到主场景。(12)从库面板中拖动“图片”元件到舞台的中心位置,然后在其左上角和右下角分别拖入“影片”元件,如图所示。(13)选中“图片”实例,在属性面板的“实例名称”文本框中输入“pic”,如图所示
31、。(14)重复步骤(13)的操作,设置右下角“影片”实例的名称为“mc”。图11.6.6 拖入“图片”和“影片”元件 图11.6.7 命名“图片”实例(15)选中左上角的“影片”实例,在动作面板中输入以下代码:onClipEvent(enterFrame)if(dragger)_=this._x;_=this._y;_=_-this._x;_=_-this._y;else_=this._x;_=this._y;_=_-this._x;_=_-this._y;diff=_-_y;diffx=_-_x;_y=_y+diff/10-5;_x=_x+diffx/10-5;(16)按Ctrl+Enter
32、键预览,效果如图所示。过关练习填空题1ActionScript是一种_语言,它的结构与JavaScript基本相同。2_是用运算符把常量、变量和函数连接起来构成的式子,这个式子可以计算并能返回一个值。选择题1在Flash8中,用户可以为()添加ActionScript。(A)帧(B)影片剪辑(C)按钮(D)图像2在ActionScript中,常用的数据类型有()。(A)数值型(B)字符串型(C)关系型(D)逻辑型3按照运算符和运算结果的不同,可以将表达式分为()。(A)数值表达式(B)字符串表达式(C)关系表达式(D)逻辑表达式简答题1哪一种运算符用于指明对象或影片剪辑的属性和方法?2简述getURL动作的作用。上机操作题1制作鼠标跟随效果。2制作一个小球在移动的同时,改变大小的动画效果。