1、第 十三课 常用的Actions语句,课前导读 课堂讲解 上机实战 课后练习,课前导读,重点知识 提高知识 了解知识,重点知识,停止语句stop、跳转语句goto、条件语句if。读者应仔细阅读相关部分,并结合上机实战练习和掌握。,提高知识,循环语句。初学者可暂时不学,待有一定的基础后再学习。,了解知识,超链接语句getURL。,课堂讲解,13.1 停止语句stop 13.2 跳转语句goto 13.3 条件语句 13.4 超链接语句getURL 13.5 循环语句,制作Flash动画时经常用到stop、goto、if、getURL、for、while等语句,它们的用法其实并不难,下面分别讲解。
2、,13.1 停止语句stop,默认情况下,Flash动画会从第1帧播放到动画的最后一帧,中间不会停止。如果想让动画停止在某一帧不再继续播放,可以在想要停止的帧上添加停止语句stop();。stop语句是Flash中最简单的Actions语句,在前面的动画制作中实际已经应用到了。下面再通过一个小实例体会一下stop语句的作用。,(1)打开第11课制作的毛笔字效果,其时间轴如图13-1所示。在其中“毛笔”层的第50帧有一个符号,那是因为我们为该帧添加了stop语句。,图13-1,为第50帧添加stop语句后,动画播放到第50帧时就停在那儿了,如果没有添加stop语句,动画又将重新从第1帧开始播放。
3、另外,在任何一个图层的相同帧数上添加stop语句都会得到相同的效果。,(2)下面要让动画停在第25帧,选中“遮罩层”的第25帧(也可在其他图层的第25帧插入关键帧,并选中新关键帧),展开“动作”面板。 (3)在“动作”面板左边的命令框中双击“全局函数”下“时间轴控制”中的 ,即可为第25帧添加stop语句,如图13-2所示。,图13-2,(4)这时在时间轴中的第25帧上将出现 标记,表示为该帧添加了Actions语句,如图13-3所示。,图13-3,(5)按【Ctrl+Enter】键播放动画即可看到添加stop语句后的效果,当毛笔写到“绿”的左边时就停止了,如图13-4所示。,图13-4,13
4、.2 跳转语句goto,跳转语句goto可以使动画跳转到指定的帧开始播放或停止播放,它通常与play和stop语句结合使用,对应的命令为gotoAndPlay和gotoAndStop。gotoAndPlay可以使动画跳转到指定的帧开始播放,gotoAndStop可以跳转到指定的帧停止播放。goto语句既可以添加在按钮元件或影片剪辑元件上,也可以添加在帧上。下面通过一个小实例来体会goto语句的作用。其具体操作如下。,(1)新建一个文件,用椭圆工具 绘制一个无边框的圆形,颜色填充为由白到黑的放射状渐变,并将其转换为图形元件,如图13-5所示。(2)新建一个引导层,在其中绘制一条如图13-6所示的
5、曲线,作为小球运动的轨迹,并将其沿用到第45帧。,图13-6,图13-5,(3)将小球拖放到曲线的左端点,并在“属性”面板中进行如图13-7所示的设置,然后在第45帧插入关键帧,将小球拖放到曲线的右端点,在两帧之间创建补间动画。时间轴如图13-8所示。,图13-8,图13-7,(4)按【Ctrl+Enter】键播放动画可以看到小球沿着所绘曲线的轨迹向前滚动。当滚动到右方时又重新从第1帧开始播放,从左向右滚动。(5)如果要让小球播放到第45帧时不从第1帧开始播放,而从第40帧开始播放,可以在第45帧中添加goto语句。首先选中第45帧,然后展开“动作”面板。(6)在“全局函数”下的“影片剪辑控制
6、”中双击 ,右边的窗口中将出现相应的命令,如图13-9所示。,图13-9,(7)在gotoAndPlay();括号中输入“40”,表示当播放到第45帧时,动画跳转到第40帧并播放动画。(8)按【Ctrl+Enter】键播放动画,可以看到小球沿着所绘曲线的轨迹向前滚动。当滚动到最右方时,并没有重新从最左边开始滚动,而是从第40帧开始播放。,为帧添加gotoAndStop命令的方法与添加gotoAndPlay的方法相同。另外,为按钮添加goto语句时比为帧添加goto语句时多了一行用于判定动作的语句(具体方法将在上机实战中练习),而在帧中只需直接输入gotoAndPlay()或gotoAndSto
7、p()即可。,13.3 条件语句,1.if语句 2.else语句 3.else if语句,利用条件语句if可以建立一个执行条件,这样只有当if中设置的条件成立时,才能继续执行后面的动作。if语句和else语句通常在一起使用,else语句离开了if语句就会失去意义,因此这里将它们放在一起讲。,1.if语句,在“动作”面板中,条件语句if位于“语句”选项的“条件/循环”选项下,如图13-10所示。,图13-10,条件语句if的作用是当if语句中的条件成立时执行if后面的语句,这样可以使用比较的结果来控制Flash动画的播放。其语法结构如下:if(condition) statement(s);,其
8、中:condition指需要满足的条件;statement(s)指要执行的动作。它表示如果满足if后面括号中的条件,则执行大括号中的动作。例如,语句:if(x20)gotoAndPlay(20);表示首先判断x是否大于20,如果大于20,则让动画跳转到第20帧并播放。,else语句同样位于“语句”选项的“条件/循环”选项下,如图13-10所示。,2.else语句,前面讲过,只有满足了if语句中的条件时才能继续执行后面的语句,如果if语句的条件不满足时,该怎么办呢?Flash MX 2004提供了else语句来解决问题。如果没有满足if语句设置的条件,可以自动执行在else语句中设置的动作。el
9、se语句单独存在无任何意义,必须与if语句配合使用,其语法格式如下:,if (condition)statement(s);else (condition)statement(s);,其中:condition指需要满足的条件;statement(s)指要执行的动作。意思是当满足了if后面的条件(condition)时,执行它后面的语句statement(s);如果没有满足if后面的条件,则执行else后面的语句statement(s)。例如,语句:if(x20)gotoAndPlay(20);elsegotoAndStop(1);表示首先判断X是否大于20,如果大于20,动画跳转到第20帧并播
10、放,如果小于20,动画跳转并停止在第1帧。,3.else if语句,前面在Flash MX 2004中还可以将else if语句配合if语句使用。以实现对多个条件的判断,if和else if配合使用的语法格式如下: if (condition)statement(s); else if (condition)statement(s); 其中:condition指需要满足的条件;statement(s)指要执行的动作。,else if语句同样位于“语句”选项的“条件/循环”选项下,如图13-10所示。,意思是当满足if后的条件(condition)时,执行它下面的动作statement(s);当
11、满足else if后的条件(condition)时,执行else if下面的动作statement(s)。例如,语句:if(x60)gotoAndPlay(1);elsegotoAndPlay(100);表示首先判断X是否小于30,如果是,则动画跳转到第25帧播放,如果X大于60,则动画跳转到第1帧播放,如果两个条件都不满足,则动画跳转到第100帧播放。,13.4 超链接语句getURL,超级链接语句getURL的作用是使某帧或按钮链接到某个网页,或实现发送邮件操作等。getURL命令位于“全局函数”选项的“浏览器/网络”选项下,如图13-11所示。从该图中可以看出getURL的语法格式如下:
12、,图13-11,getURL(url,window,“variables“)其中:url用于输入需要链接到的网页地址(如http:/);window用于设置网页打开的位置;variables用于设置发送变量的方式。例如,在某个动画中,要使用户单击某个按钮时打开Macromedia公司的网页http:/,可以使用如下语句:on(release)getURL(“http:/“);表示将该按钮链接到网站http:/,以后单击该按钮就可以打开Macromedia公司的网站。,13.5 循环语句,1.while语句 2.do while语句 3.for语句,在Flash MX 2004中可以通过循环语句
13、重复执行某个动作,其中最常用的循环语句包括while、do while和for。这些语句都位于“动作”面板“语句”选项中的“条件/循环”选项中,如图13-12所示。,图13-12,对于循环语句,最常用的做法是将一个变量作为计数器,当计数器中的值在指定范围内时,就执行相应的动作。每循环一次,变量的值就增加或减少一个数,当变量的值跳出指定的范围时,循环终止。,1.while语句,使用while语句时,系统会先计算一个表达式,如果表达式的值为true,就执行循环体中的代码,在执行完循环体中的每一个语句之后,while语句会再次对该表达式进行计算,当表达式的值仍为true时,会再次执行循环体中的语句,
14、直到其值为false。while语句的语法格式如下:while(condition) statement(s);其中:condition指每次执行while动作时都要重新计算的表达式;statement(s)条件计算结果为true时要执行的指令。,例如,语句:snow=0;while(snow300) gotoAndPlay(2);snow=snow+3;gotoAndPlay(1);表示为snow赋予初值“0”,while语句中的条件为“snow300”,如果snow的值小于300,就执行语句“gotoAndPlay(2);”,每循环一次就执行“snow=snow+3;”语句为“snow”的
15、值加3。当while语句循环了100次之后,即“snow”的值不符合小于300的条件时,终止循环并执行其后的“gotoAndPlay(1);”语句,实现跳转到第1帧并继续播放的动作。,2.do while语句,do while语句可以创建与while语句相同的循环,不同的是,do while语句对表达式的判定是在其循环结束处,使用while语句至少会执行一次循环。其语法格式如下:do statement(s);while (condition)其中:condition指要计算的条件;statement(s)是指只要condition参数的计算结果为true就会执行循环的语句。,例如,语句:sn
16、ow=1do gotoAndPlay(2);snow+=1; while (snow300);表示首先为snow赋予一个初值“1”,在do while语句中的条件为“snow300”,当snow的值小于300时就继续执行语句“gotoAndPlay(2);”。在第一次循环时将先执行语句“gotoAndPlay(2);”,然后通过语句“snow300”对“snow”的值进行判定。如果不符合该条件,就终止循环,如果符合该条件,继续循环。,3.for语句,和while语句一样,for语句也可以创建循环,决定循环次数的变量可在for语句中预先定义好。使用for语句创建循环的语法格式如下:for(ini
17、t; condition; next)statement(s); 其中:init为赋值表达式,它表示一个在开始循环序列前要执行的表达式。condition是指计算结果为true或false的表达式。在每次循环迭代前计算该条件;当条件的计算结果为false时退出循环。,Next是在每次循环迭代后要计算的表达式,通常为使用 +(递增)或 -(递减)运算符的赋值表达式。 statement(s)是指要在循环体内执行的指令。整个语句是一种循环结构,它首先计算一次init(初始化)表达式,然后按照以下顺序开始循环序列:只要condition的计算结果为true,就执行statement,然后计算下一个表
18、达式。例如,语句:for(var i=30;i20;i-)trace(i);for后面的括号中包括以下3个部分。,第1部分声明一个局部变量,在本例中创建了一个局部变量i并将其设置为30。该部分只在循环体开始执行之前执行一次。 第2部分作为一个供测试的条件,测试i是否大于20。如果满足该条件,反复执行循环。循环开始的时候i等于30,它是大于20的,所以循环得以执行。第3部分是一个运算表达式,每完成一次循环都将执行该表达式一次。这里i每次递减1,然后转到第2部分对i的新值进行判断。,上机实战,制作照片集 制作身份验证程序,在本课上机实战将进行两个练习:一是制作一个自己的照片集,其中涉及到的知识点有
19、on、gotoAndStop以及按钮元件的使用等;二是制作一个身份验证程序,其中涉及到的知识点有stop、if、else、gotoAndStop等。通过这两个实例的练习,读者可以巩固本课所讲的几个Actions语句的使用。对于没有练习到的语句,读者可结合课堂讲解自行练习,在以后的几课中也会涉及到这些语句的使用。,制作照片集,其用Flash制作一个自己的照片集是一件非常有意思的事。这里就练习利用goto语句制作一个照片集,只要单击照片集上的任何一张小照片,该照片就会放大到整个屏幕显示,再次单击又会回到小照片的状态,最终效果如图13-13所示。制作的具体操作如下 :,图13-13,(1)新建一个文
20、件,将舞台大小设为480400像素,背景色设为黄色。在第2帧按【F6】键插入关键帧,选择文件导入导入到舞台菜单命令,在打开的对话框中选中图片“photo1.jpg”,如图13-14所示。,图13-14,(2)单击 按钮,出现如图13-15所示的提示框。(3)单击 按钮,即可将图片“photo1.jpg”导入到舞台中,位于第2帧。重复上面的操作依次将图片photo2photo5.jpg导入到舞台中,并分别位于第36帧。,图13-15,(4)选中第2帧中的“photo1.jpg”,将其按比例缩小,使得图片刚好能覆盖舞台,如图13-16所示。 (5)用同样的方法将第36帧中的图片都缩至舞台大小。 (
21、6)新建一个名为“photo1”的按钮元件,选中“弹起”帧,打开“库”面板,选中其中的位图“photo1.jpg”,并按住鼠标左键将其拖动到元件编辑区的中心,然后将其按比例缩小。,图13-16,(7)在“指针经过”、“按下”、“点击”帧分别按【F6】键将“弹起”帧中的图片沿用过来,选中“指针经过”帧中的图片,将其按比例放大一点,如图13-17所示。(8)用相同的方法分别制作按钮元件“photo2”、“photo3”、“photo4”、“photo5”,每个按钮元件中的图形都是对应的位图“photo2”、“photo3”、“photo4”、“photo5”。,图13-17,(9)单击 图标,回到
22、场景中,新建一个图层,系统自动命名为“图层2”,将其移到图层1的下方。选中图层2中的第1帧,打开“库”面板,将其中的按钮元件“photo1”、“photo2”、“photo3”、“photo4”、“photo5”依次拖放到舞台中,并按如图13-18所示的位置放置。,图13-18,(10)选中按钮元件“photo1”,打开“动作”面板,在“全局函数”下的“影片剪辑控制”中双击 ,右边的窗口中将弹出如图13-19所示的列表框,在其中双击 ,使它出现在“on”后面的括号中,表示事件发生在单击鼠标后。,图13-19,(11)在“”后单击鼠标,再按【Enter】键,然后在“全局函数”下的“时间轴控制”中
23、双击 ,右边的窗口中将出现相应的命令,如图13-20所示。,图13-20,(12)在gotoAndStop()括号中输入“2”,表示当单击鼠标后动画跳转到第2帧并停止播放动画。完成后的Actions语句如下:on (release) gotoAndStop(2); /单击鼠标后动画跳转到第2帧并停止(13)用同样的方法为按钮元件“photo2”、“photo3”、“photo4”、“photo5”添加相同的Actions语句,只是依次将gotoAndStop(2);中的数字“2”改为3、4、5、6。,在为按钮元件“photo2”、“photo3”、“photo4”、“photo5”添加Acti
24、ons语句时也可以直接将“photo1”中的语句复制过来,再改变gotoAndstop()括号中的相应数值即可。,(14)按【Ctrl+Enter】键播放动画,发现画面不停闪烁,根本就没有停下来,这时只需在时间轴中选中图层2的第1帧,并为其添加stop语句即可。(15)为第1帧添加stop语句后按【Ctrl+Enter】键播放动画,出现如图13-13所示的画面,在其中单击任意一张图片,即可使这张图片放大到整个屏幕。(16)按【Ctrl+Enter】键播放动画时会发现,在图片被放大后就无法回到如图13-13所示的画面了,因此需要为每张放大后的图片添加一个按钮,使得单击这个按钮时可以回到第1帧中。
25、(17)在场景中选中图层1第2帧中的图片,选择修改转换为元件菜单命令,将其转换为按钮元件,用相同的方法将第3、4、5、6帧中的图片均转换为按钮元件。,(18)选中图层1第2帧中的按钮元件,在“动作”面板中输入如下Actions语句:on (release) gotoAndStop(1); /单击鼠标后动画跳转到第1帧并停止(19)依次选中图层1中第3、4、5、6帧中的按钮元件,在“动作”面板中输入与第1帧中的按钮元件相同的Actions语句。也可直接将其中的语句复制到第3、4、5、6帧的按钮元件中。(20)按【Ctrl+Enter】键播放动画,单击其中任意一张图片,可以使该图片放大显示,再单击
26、放大显示的图片即可回到如图13-13所示的画面。如图13-21所示是单击一张图片后得到的效果。,图13-21,制作身份验证程序,其读者在上网时经常会看到一些验证身份的界面,要求用户输入正确的用户名和密码后才能进入某个网页,下面就通过if语句来制作一个简单的身份验证程序,效果如图13-22所示。在该动画中,只有输入了正确的用户名和密码,再单击“登录”按钮才可进入第二个界面,如果输入错误将进入第三个界面。输入用户名和密码后单击“取消”按钮可以清空文本框,以便重新输入。在第二个界面和第三个界面中单击嘴唇或眼睛将回到第一个界面。,制作的具体操作如下:(1)新建一个文件,将背景色设为浅蓝色,背景大小设为
27、300200像素,在舞台上方输入文字“欢迎进入工作界面”,并将其设置为“华文中宋、25、黄色、加粗”。,图13-22,(2)在舞台中依次输入文本“用户名”、“密码”、“次数”、“登录”、“取消”,其位置如图13-22所示。其中“用户名”和“密码”为“华文中宋、17、黄色、加粗”;“登录”、“取消”为“隶书、25、黄色、加粗”。(3)在“用户名”和“密码”后面绘制一个无边框的白色矩形,然后单击文本工具 ,在“属性”面板中选择“输入文本”,并在“变量”文本框中输入“user”,颜色设置为黑色,如图13-23所示。在白色矩形上绘制一个输入文本框,使其刚好能覆盖矩形。,图13-23,(4)用同样的方法
28、在“密码”后面绘制一个输入文本框,只是在“变量”文本框中将变量名改为“code”,在 下拉列表框中选择“密码”选项。(5)在“次数”下方绘制出一个文本框,并在“属性”面板中选择“动态文本”,在“变量”文本框中输入“num”,颜色设置为红色。(6)打开“库-按钮”面板,在其中的“Ovals”选项下选择“Oval buttons-yellow”,并将其拖放到舞台中“登录”的前面,再拖放一个到“取消”前面,如图13-22所示的第一个界面所示。(7)在第2帧按【F7】键插入空白关键帧,在舞台上方输入“Welcome!”,并将其设置为“Arial Black、52、黄色、加粗”,在“Welcome!”下
29、方绘制一个红色的嘴唇,如图13-22的第二个界面所示。,(8)在第3帧按【F7】键插入空白关键帧,在“Welcome!”下方输入如图13-22第三个界面所示的文字,并绘制一双眼睛。(9)新建一个图层,选中它的第1帧,在“动作”面板中输入如下语句:stop(); /停止播放动画num=0; /将变量num的初始值设为0(10)选中图层1第1帧中的“登录”按钮,在“动作”面板中输入如下语句:on (release) /单击“登录”按钮num=num+1; /单击一次“登录”按钮,变量num增加1if (user=“ygy“)&(code=“791229“) /如果user文本框的内容是“ygy”,
30、且code文本框的内容是“791229”,gotoAndStop(2); /跳转到第2帧并停止 else if(num=3) /如果单击3次“登录”按钮gotoAndStop(3); /跳转并停止至第3帧(11)选中“取消”按钮,在“动作”面板中输入如下语句:on (release) /单击“取消”按钮user=“; /user文本框为空code=“ / code文本框为空,(12)依次选中第2帧中的嘴唇和第3帧中的眼睛,将它们分别转换为按钮元件,并在“动作”面板中输入如下语句:on (release) gotoAndStop(1); /单击该按钮跳转到第1帧(13)至此,身份验证程序制作完成
31、,按【Ctrl+Enter】键播放动画,在“用户名”文本框中输入“ygy”,在“密码”文本框中输入“791229”,单击“登录”按钮,进入第二个界面。,课后练习,填空题 判断题 问答题 上机操作题,填空题,(1)如果希望动画停止在某一帧处而不再继续播放,就可以在想要停止的帧上添加 语句。(2)使用跳转语句goto可以 ,它通常与play和stop语句结合使用,对应的命令为 和 。(3)使用if语句时,如果没有满足if语句设置的条件,可以自动执行在 语句中设置的动作。,使动画跳转到指定的帧开始播放或停止播放,gotoAndPlay,else,gotoAndStop,判断题,(1)goto语句既可
32、以添加在按钮元件或影片剪辑元件上,也可以添加在帧上。 ( ) (2)if条件语句的作用是直接执行if和end if之间的语句。 ( ) (3)使用do while语句至少会执行一次循环。 ( ) (4)else语句可以单独使用。 ( ),问答题,(1)写出if语句以及if语句与else语句配合使用时的语法结构?(2)if语句和else语句有什么区别与联系?(3)getURL语句有什么作用?,参见13.1.3节相关内容,参见13.1.3节相关内容,参见13.1.4节相关内容,上机操作题,(1)参照本课上机实战的做法,为自己制作一个照片集。(2)利用本课所讲的if语句,制作一个飞舞的彩球效果如图13-24所示。,图13-24,