FlashMX基础之综合实例.ppt

上传人:小飞机 文档编号:6505681 上传时间:2023-11-07 格式:PPT 页数:101 大小:702.50KB
返回 下载 相关 举报
FlashMX基础之综合实例.ppt_第1页
第1页 / 共101页
FlashMX基础之综合实例.ppt_第2页
第2页 / 共101页
FlashMX基础之综合实例.ppt_第3页
第3页 / 共101页
FlashMX基础之综合实例.ppt_第4页
第4页 / 共101页
FlashMX基础之综合实例.ppt_第5页
第5页 / 共101页
点击查看更多>>
资源描述

《FlashMX基础之综合实例.ppt》由会员分享,可在线阅读,更多相关《FlashMX基础之综合实例.ppt(101页珍藏版)》请在三一办公上搜索。

1、FlashMX基础之十,综合应用,星球大战开场文字,字幕效果制作新建550*400的文件,以黑色为背景,将图层1改名为:caption;用文字工具,输入一段文字,设置好字体、字号及颜色;将文字选中后打散2次后,进行透视变换。,星球大战开场文字,选中文字,将其转换为图形类元件:caption;打开变形面板,将文字实例放大4倍左右,使第一行文字与未变形前差不多的大小。将文字实例移到舞台下方边缘;,星球大战开场文字,在第200帧插入关键帧,将文字实例缩小后拖动到舞台中上方;在第1帧创建运动渐变,并打开属性面板,将简易设为100。,星球大战开场文字,背景制作新建图层:stars,并将其放在图层capt

2、ion的下面;选中stars的第1帧,输入下面动作命令:iMax=400;/星星总数。sClipName=“starbg”;/背景影片剪辑名字iStarSizeMax=2;/星星大小(最大值)iStarSizeMin=1;/星星大小(最小值)iStarAlphaMax=100;/星星透明度(最大值)iStarAlphaMin=80;/星星透明度(最小值)this.createEmptyMovieClip(sClipName,0);/创建一个空白的背景影片剪辑。,星球大战开场文字,for(i=1;i=iMax;i+)iStarX=Stage.width*Math.random();/星星的X轴坐

3、标iStarY=Stage.height*Math.random();/星星的Y轴坐标iStarSize=(iStarSizeMax-iStarSizeMin)*Math.random()+iStarSizeMin;/星星的大小iStarAlpha=(iStarAlphaMax-iStarAlphaMin)*Math.random()+iStarAlphaMin;/星星的透明度iStarColor=0 xffffff;/星星的颜色(白),星球大战开场文字,with(thissClipName)lineStyle(iStarSize,iStarColor,iStarAlpha);/设定画星星画笔

4、的大小,颜色,透明度 moveTo(iStarX-1,iStarY);/将画笔移动到要绘制星星的位置 lineTo(iStarX,iStarY);/绘制一条从点(iStarX-1,iStarY)到点(iStarX,iStarY)之间的,长度为一个像素的直线,星球大战开场文字,在最上方新建图层:shade,在中上方画一个矩形,由上而下填充成从透明到黑色的线性渐变。,星球大战开场文字,程序说明:createEmptyMovieClip语句的语法:MyMovieClip.createEmptyMovieClip(instanceName,depth);功能:创建一个名为instanceName空白影

5、片剪辑。,星球大战开场文字,With语句的语法:With(object)Statement(s);功能:可以在两个花括号之间直接定义对象的属性,而不必在每个对象前加上对象的引用,这样,可以将某一对象的所有属性设定或调用集中在一起。例如:要设置影片剪辑mc的_x属性,可在按:mc._x=100;的方式进行,也可以按如下方式进行:With(mc)_x=100;,星球大战开场文字,绘图方法:lineStyle、moveTo、lineTolineStyle语法:MymovieClip.lineStyle(thckness,rgb,alpha)参数Thckness、rgb、alpha表示线的粗度、16进

6、制的颜色及透明度,如果不含参数,则不画任何线;,星球大战开场文字,moveTo语法:MymovieClip.moveTo(x,y)将画笔移到指定的(x,y)位置;lineTo语法:MymovieClip.lineTo(x,y)从当前位置与指定的(x,y)位置之间画一条直线;使用该命令时,一定要使用lineStyle方法设置好线的属性。,闪 电 效 果,新建文件,插入MC元件:闪光段;选择矩形工具,创建一个矩形,并将边线删除;选择油漆桶工具,在Color Mixer面板中选择Linear渐变,将中间的颜色块设为白色,两边的颜色块设为深蓝色,并将Alpha的值设为0%,然后对矩形进行渐变处理,效果

7、如图所示。,闪 电 效 果,按照第(3)步的操作,再制作两个半圆,并分别将其放置在矩形的两端,并将中心点拖放到上面的半圆圆心,效果如图所示。,闪 电 效 果,返回到场景中,将“闪光段”拖到场景中,在属性面板中将实例命名为basic,第1个关键帧后加入一个关键帧,整个动画只有两个关键帧。,闪 电 效 果,选择第1帧,然后在Action面板中加入如下代码:heightstart=10;/定义闪光段高度的最小值heightrange=50;/定义闪光段高度的范围anglestart=80;/定义闪光段转角的最小值anglerange=160;/定义闪光段转角的范围setProperty(“basic

8、”,_visible,false);/设置闪光段 basic在场景中不可见,闪 电 效 果,选择第2帧,然后在Action面板中加入如下代码:i=1;currentx=300;/设置第一个闪光段的位置(X)currenty=0;/设置第一个闪光段的位置(Y)do i=i+1;heightoffset=random(heightrange)+heightstart;/设置产生随机长度angleoffset=random(anglerange)+anglestart;/设置产生随机旋转角度newobj=“basic”add i;/设置产生一个字符串,用于下一条语句中。,闪 电 效 果,duplic

9、ateMovieClip(“basic”,newobj,i);/设置复制新的闪光段,用newobj中的字符串为其命名,设置它的深度为isetProperty(newobj,_x,currentx);/设置刚复制的闪光段的位置(X)setProperty(newobj,_y,currenty);/设置刚复制的闪光段的位置(Y)setProperty(newobj,_height,heightoffset);/设置刚复制的闪光段的长度setProperty(newobj,_rotation,angleoffset);/设置刚复制的闪光段的旋转角度,闪 电 效 果,setProperty(newob

10、j,_xscale,100-5*i);/设置刚复制的闪光段的粗细currentx=currentx-(Math.sin(angleoffset*3.14/180)*heightoffset*.7;/设置计算下一个闪光段的位置(X)currenty=currenty+(Math.cos(angleoffset*3.14/180)*heightoffset*.7;/设置计算下一个闪光段的位置(X)while(i20);/设置循环结束条件,数值越大,闪电的段数越多,当然太多会超出屏幕,可以改小长度。,闪 电 效 果,选择ControlTest Movie命令,则出现如图所示的预载动画效果。,暴 雨

11、效 果,下面将制作“暴雨”的效果,其制作方法主要采用长短不同的直线,向着同一方向运动来表现。制作“暴雨”效果主要要制作3个动画层:雨点层:用比较短而粗的直线,可用一些流线型水点,速度在810帧;线层:用粗细适中而较长的直线,线条可密些,速度在1015帧;片层:表示雨的距离较远,可采用细而密的直线组成片状,速度在1520帧左右。,暴 雨 效 果,制作步骤:建立一个新文件,创建新层:银幕。然后在该层上创建一个宽屏幕,如图所示。,暴 雨 效 果,新建Movie Clip类元件:雨点,选择笔刷工具,画一个流线型的水点,并将颜色设置为淡灰色或中灰色线,效果如图所示。,暴 雨 效 果,新建Movie Cl

12、ip类元件:雨点运动,将“雨点”符号拖入到“雨点运动”符号的场景中;选择第1帧,将“雨点”放置在场景的右上角。在第10帧插入关键帧,将“雨点”拖动到场景的左下角,并创建“雨点”为补间动画。打开动作面板,添加如下代码,使用雨点的运动能够循环运行:gotoAndPlay(1);,暴 雨 效 果,新建Movie Clip类元件:线。选择直线工具画一条倾斜的线,将颜色设为淡灰色,粗细为1。,暴 雨 效 果,新建Movie Clip类元件:线运动,将“线”符号拖入到“线运动”符号的场景中;选择第1帧,将“线”放置在场景的右上角,在第15帧的位置上插入关键帧,将“线”放置在场景的左下角,并创建补间动画。,

13、暴 雨 效 果,在第15帧,设置帧动作为:gotoAndPlay(1);使用“线运动”动画能够循环运行。新建Movie Clip类元件:片。选择直线工具画一组细线,组成片状,效果如图所示。,暴 雨 效 果,新建Movie Clip类元件:片运动。将“片”符号拖入到“片运动”符号的场景中;选择第20帧,将“片”符号拖动到场景的右上角。在第20帧的位置上插入关键帧,将“片”符号拖动到场景中的左下角,并创建补间动画。,暴 雨 效 果,选中第20帧,设置帧动作为:gotoAndPlay(1);使用“片运动”动画能够循环运行。回到场景中,创建3个层,分别命名为“雨点层”,“线层”,“片层”,并在将所有层

14、的第15帧处插入关键帧。“宽银幕”层的第15帧选中第20帧,设置帧动作为:gotoAndPlay(1);,暴 雨 效 果,选择“雨点层”,将“雨点运动”拖入场景。并安排好位置,效果如图所示。选择“线层”,将“线的运动”拖入场景,并排好位置,使其间隔密一些,并在场景中也放一些,效果如图所示。,暴 雨 效 果,选择“片层”,将“片的运动”拖入场景,排好位置,并在场景中也需要放置一些,效果如图所示。,暴 雨 效 果,导入合适的声音文件,创建一个声音图层并命名为“声音”。选择声音层的第1帧,在属性面板中的Sound下拉列表框内选择添加的声音文件的名称。在第15帧处插入关键帧,使动画和声音同步。创建一新

15、层,命名为“背景”,在该层中导入一幅背景图片,然后在第15帧上插入关键帧 选择“雨点层”中的所有符号,在属性面板中的Color下拉列表中选择Alpha选项,将透明度设置为80%,暴 雨 效 果,按照同样的方法将“线层”和“片层”中的所有符号分别设为90%和70%,使效果更加出色。按Ctrl+Enter组合键,最终效果如图所示。,新闻联播片头,本实例模仿“新闻联播”的片头制作了一个动画,首先我们利用蒙板制作了一个旋转的世界地图作为背景,然后分别为“新闻联播”4个字设置动画,创建天外飞字效果,使片头动画更具活力。,新闻联播片头,建立一个新文件。在属性面板中将场景颜色设置为淡蓝色(RGB:0、204

16、、205);选择矩形工具按钮,并设置Corner为10,在场景中绘制一个圆角矩形,设置矩形的高度和宽度为239,矩形变成了正方形;,新闻联播片头,对正方形进行由蓝色到黑色的辐射渐变填充,并将轮廓删除,效果如图所示。按下F8键将正方形转换为图形符号,命名为beijng。,新闻联播片头,导入一幅地图图片,将其转换为矢量图,再对其进行复制,将两个地图水平排列在一起,如图所示;全选地图,将其颜色更改为50%的灰色,再按下F8键将地图转换为图形符号,命名为ditu。,新闻联播片头,新建一个电影类符号,命名为xuanzhuan,从库中拖动beijing符号到新建符号中,在第40帧按下F5键创建一个普通帧;

17、新建图层2,将ditu符号拖动到新建图层中,如图所示调整地图的位置,使其左端与正方形有一段重叠。,新闻联播片头,在图层2的第40帧创建关键帧,如图所示调整地图的位置,使其右端与正方形有一段重叠;注意,一定要使在该帧中重叠的部分与第1帧中相同,否则在后面生成动画后会有跳帧现象。然后,在图层2的第1帧上添加运动变形动画。,新闻联播片头,新建一个图层3,从Library面板中拖动beijing符号到新建层中,然后与场景中心对齐;在图层3上单击鼠标右键,在弹出的菜单中选择Maske命令将该层转换为蒙板层,同时,图层2转换为被蒙板层。,新闻联播片头,新建一个图层4,从Library面板中拖动ditu符号

18、到新建层中,选择“修改变形水平翻转”命令将ditu符号水平翻转;选择图层4中的ditu符号,在Properties面板中设置该符号的Alpha值为30%;,新闻联播片头,在第40帧创建关键帧,如图所示在第40帧中调整ditu符号的位置,调整后在第1帧添加运动变形动画。,新闻联播片头,新建一个图层5,从Library面板中拖动beijing符号到新建层中,使其与场景中心对齐,然后在图层5上单击鼠标右键,在弹出的快捷菜单中选择Maske命令将该层转换为蒙板层,同时,图层4转换为被蒙板层。,新闻联播片头,返回到场景中,从Library面板中拖动xuanzhuan符号到场景中,使其与场景中心对齐,然后

19、对其进行放大4倍,效果如图所示;在属性面板的Color下拉列表中选择Alpha选项,将该符号设置为完全透明。,新闻联播片头,在图层1中的第60帧创建关键帧,单击该帧中的xuanzhuan符号,在Properties面板的Color下拉列表中选择None选项,使该符号恢复正常显示,然后调整其大小,如图所示。,新闻联播片头,单击图层1中的第1帧,在Properties面板中为该帧添加运动变形动画,然后在Rotate列表中选择CW选项,使xuanzhuan符号从第1帧到第60帧顺时针旋转一周。在第150帧按F5键。,新闻联播片头,新建一个图层2,在第1帧输入文字“新闻联播”,将其设置为桔黄色(RGB

20、:255、102、0),然后将文字与场景中心对齐,效果如图所示。复制文字,并将副本文字打散,然后对文字副本进行直线渐变填充,设置不同亮度的黄色到白色的渐变。填充后将文字副本与原文字叠放在一起,组成立体字效。,新闻联播片头,依次框选每个文字,按下F8键将它们转换为4个图形符号,分别用各自的字命名;选中和1帧上所有文字,组合后转换成图形类元件“新闻联播”;在第60帧按F6键,插入关键帧,将第1帧的文字放大4倍,并将其设置为完全透明,并在第1帧设置为运动渐变。在第61帧按F7键。,新闻联播片头,新建图层3,在第60帧插入关键帧,从库中将图符“新”拖入,与图层2中的“新”字重合。在第80帧按F6键,将

21、第60帧的“新”字放大4倍,并创建运动渐变。新建4,在第70帧插入关键帧,从库中将图符“闻”拖入,与图层2中的“闻”字重合。在第90帧按F6键,将第70帧的“闻”字放大4倍,并创建运动渐变。,新闻联播片头,新建图层5、图层6,用同样方法处理“联”、“播”两个图符,每个图层中创建关键帧如图所示。,新闻联播片头,对每个图层中的文字符号做相同的操作,完成片头动画的制作,如图所示。,图片环绕旋转,新建FLASH文件,把文档的背景色改成黑色。CTRL+F8,新建元件text,在元件的帧上放13个关键帧,第一帧留空,在其他每个关键帧中输入一个字母(不能是黑色),并把各个字母放到元件的舞台的正中。在第1帧,

22、设置代码:stop();再新建元件earth,在元件的第一帧画一个黑色小圆。退回主场景,把元件text拖到舞台中,在属性面板中把实例名称命名为 v0。把元件earth拖到舞台中,在属性面板中把实例名称命名为 earth。,图片环绕旋转,在场景1新建图层,在新图层第1帧输入以下代码:for(i=1;i13;i+)duplicateMovieClip(v0,v+i,i);_rootv+i.factor=-360/12*i;_rootv+i.gotoAndStop(i+1);,图片环绕旋转,选中元件 text,在动作面板输入以下代码:onClipEvent(load)_root.earth.swap

23、Depths(100);Speed=3;Radius=180;,图片环绕旋转,onClipEvent(enterFrame)_y=_root.earth._y;z=_root.earth._x-_root._xmouse;speed=z/40;Factor+=speed;xtransform=Math.sin(Math.PI/180*factor);Ytransform=Math.sin(Math.PI/180*factor);Ytransformp=Math.sin(Math.PI/180*(factor+90);this._xscale=ytransformp*120+1;this._x=

24、_root.earth._x+xtransform*radius;this._alpha=10+(ytransformp+1)*50;this._yscale=120+(ytransformp-1)*2;stack=Math.round(ytransform+1)*100);this.swapDepths(stack);,凸透镜成像,凸透镜成像演示过程是通过拖动界面上燃烧的蜡烛改变物距,演示物体的凸透镜成像效果,帮助学生理解透镜成像的特点及规律。课件运行界面如图所示。,凸透镜成像,凸透镜成像的规律是,当物体放在透镜的1倍焦距以外,所成的物像是在物体对侧的倒立的实像;物体放在透镜的1倍焦距以内,

25、所成的物像是在物体同侧正立的虚像。,凸透镜成像,物距、像距与焦点的关系是:根据这一公式我们可以推导出像距与物距及焦点的位置。同理,求出像高与物高的关系公式是:,凸透镜成像,课件的制作过程均是按照凸透镜成像规律进行的。准备素材:新建一个文件,将动画的画面尺寸设置为640px480px,背景色为蓝色。插入一个名为“蜡烛”的电影剪辑元件,做一个58帧的蜡烛燃烧的逐帧动画.,凸透镜成像,插入一个名为“蜡烛-按钮”的按钮元件,将库窗口中的“蜡烛”电影剪辑元件拖入元件编辑窗口,设置其宽为20、高为100、X为-10、Y为-100。插入一个名为“蜡烛-动画”的电影剪辑元件,将库窗口中的“蜡烛-按钮”按钮元件

26、拖入元件编辑窗口,设置其宽为20、高为100、X为-10、Y为-100。,凸透镜成像,制作场景:返回场景,绘制一个椭圆,并设置其宽为25、高为270、水平、垂直居中。边框设置为无、填充色为上、下深绿色,中间白色的渐变色。,凸透镜成像,添加图层2,绘制一条直线表示主光轴,在直线上画一些间距相等的线段表示1倍焦点、2倍焦点等。在透镜两侧的1倍焦距的位置分别输入文字F1、F2。,凸透镜成像,在场景的正上方,输入标题文字“凸透镜成像”。根据需要设置字体、字号、文字颜色,参照运行效果图,将其放在场景编辑区的适当位置上。,凸透镜成像,添加图层3,打开库窗口,拖2个“蜡烛-动画”电影剪辑元件到图层3,将右侧

27、表示透镜所成图像的蜡烛旋转180,并如图所示将其放在2倍焦距的位置上。,凸透镜成像,Action指令设置:选择任意层的第1帧,赋予帧动作如下:stop();选择编辑区左侧的蜡烛电影剪辑实例,在属性面板上赋予实例名称为m1。选择编辑区右侧的蜡烛(此时烛焰向下)电影剪辑实例,在属性面板上赋予实例名称为m2。,凸透镜成像,双击任意一个“蜡烛-动画”元件实例,进入“蜡烛动画”元件编辑窗口。在蜡烛图形上单击鼠标右键,在打开的快捷菜单中选择动作命令,打开动作面板,输入下列动作语句。,凸透镜成像,on(press)startDrag(/m1,false,50,240,320,240);m1_x=getPro

28、perty(/m1,_x);rot=180;if(m1_x220)setProperty(/m2,_rotation,0);u=320-getProperty(/m1,_x);f=320-220;v=f*u/(u-f);b=v/u;setProperty(/m2,_x,320+v);setProperty(/m2,_xscale,b*getProperty(/m1,_xscale);setProperty(/m2,_yscale,b*getProperty(/m1,_yscale);,凸透镜成像,if(m1_x220 and m1_x320)u=320-getProperty(/m1,_x);

29、v=f*u/(f-u);b=v/u;setProperty(/m2,_x,320-v);setProperty(/m2,_xscale,b*getProperty(/m1,_xscale);setProperty(/m2,_yscale,b*getProperty(/m1,_yscale);setProperty(/m2,_alpha,getProperty(/m1,_alpha)*0.4);setProperty(/m2,_rotation,rot);,飘雪,中括号的意义 用法1:用于定义及初始化数组,如:myArray=myArray=new Array()myArray=red,oran

30、ge,yellow 用法2:用于获取数组中的项,如:myArray0=red 用法3:用于获取对象或影片片段的成员,如:account=myObjectaccount account=myObject.account _rootmc+1_x=30 _root.mc1._x=30,飘雪,新建文件,插入一个背景图片;单击第1帧,创建动作脚本如下:fallSnow(this,150,600,375);functionfallSnow(path,num,size)for(vari=0;inum;i+)path.createEmptyMovieClip(xue+i,i);varmc=pathxue+i;

31、mc._x=random(size0);mc._y=random(size1);mc.ro=1,-1random(2);mc.xtime=random(20);mc.startTime=0;mc.id=Math.pow(i,1/2);createSnow(mc,mc.id/2.5,0 xffffff,20*mc.id);,飘雪,varloop=function()updateAfterEvent();for(vari=0;inum;i+)varmc=pathxue+i;mc._rotation+=mc.ro*5;mc._x+=mc.id*mc.ro/10;mc._y+=mc.id/2;mc.s

32、tartTime+;scanTar(mc);scanEdge(mc,size);varinterval=setInterval(loop,10);,飘雪,functioncreateSnow(mc,radius,c,alpha)with(mc)moveTo(0,-radius);beginFill(c,alpha);linestyle(0,0 x000000,0);for(vari=1;i=6;i+)vara1=-Math.PI/6+i*Math.PI/3;vara2=i*Math.PI/3;lineTo(radius/5)*Math.sin(a1),-(radius/5)*Math.cos(

33、a1);lineTo(radius*Math.sin(a2),-radius*Math.cos(a2);endFill();,飘雪,functionscanTar(mc)if(mc.startTime=mc.xtime)mc.startTime=0;mc.xtime=random(20);mc.ro=1,-1random(2);,飘雪,functionscanEdge(mc,size)if(mc._xsize0)mc._x=0;elseif(mc._xsize1)mc._y=0;,凸透镜成像,on(release)stopDrag();m1_x=getProperty(/m1,_x);if(m

34、1_x220)setProperty(/m2,_rotation,0);setProperty(/m2,_alpha,getProperty(/m1,_alpha);u=320-getProperty(/m1,_x);f=320-220;v=f*u/(u-f);b=v/u;setProperty(/m2,_x,320+v);setProperty(/m2,_xscale,b*getProperty(/m1,_xscale);setProperty(/m2,_yscale,b*getProperty(/m1,_yscale);,凸透镜成像,if(m1_x275 and m1_x320)u=330

35、-getProperty(/m1,_x);v=f*u/(f-u);b=v/u;setProperty(/m2,_x,330-v);setProperty(/m2,_xscale,b*getProperty(/m1,_xscale);setProperty(/m2,_yscale,b*getProperty(/m1,_yscale);setProperty(/m2,_alpha,getProperty(/m1,_alpha)*0.4);setProperty(/m2,_rotation,rot);,摘星星,这是一款键盘控制游戏,利用键盘上的上、下、左、右光标键来控制“七星瓢虫”的移动,必须将每一

36、关的星星全部摘掉才算过关.如果“七星瓢虫”与圆形陨石相碰撞则能量值将减少,当能量值为零时游戏将重新开始。,摘星星,随着关数的增加游戏的难度将越来越大,如图所示。,摘星星,定义键盘的上光标键控制“七星瓢虫”的移动,左光标键用于控制“七星瓢虫”的向左旋转,右光标键用于控制“七星瓢虫”的向右旋转。制作陨石与玩家的“七星瓢虫”的碰撞检测,如果碰撞将损失能量;制作星星与玩家的“七星瓢虫”的碰撞检测,如果碰撞将补充能量,随即星星也消失。定义陨石和星星的随机出现。,摘星星,准备素材:新建一个Flash文件,设置场景大小为466px233px,背景颜色为浅蓝色,帧频为30fps。新建3个电影剪辑素材,分别命名

37、为“星星”、“陨石”、“瓢虫”。,摘星星,在“星星”电影剪辑素材内绘制一个如图1所示的图形;在“陨石”电影剪辑素材内绘制一个如图2所示的图形;在“瓢虫”电影剪辑素材内绘制一个如图3所示的图形。,摘星星,制作“再来一次”的按钮。新建一个按钮元件,命名为“再来一次”。按钮可以简单用一个矩形表示,在按钮上输入“再来一次”的文本。在按钮后面的“点击”帧插入帧,结果如图所示。,摘星星,制作场景:点击时间轴下面的标签,回到场景中。单击添加层按钮,共建立8个图层,从上到下分别命名为“动作”、“文字”、“背景边线”、“遮罩层”、“瓢虫”、“陨石”、“星星”、“背景”,最后显示时间轴结果如图所示。,摘星星,单击

38、“背景”图层第1帧,在场景内绘制若干个大小不同的白色小圆点,圆的大小不超过33,使其遍布整个场景作为背景,然后将所有的小圆点选中,按Ctrl+G快捷键,将其组合起来。将库窗口中的“星星”电影剪辑素材拖放到“星星”图层,打开属性面板,为该电影剪辑添加实例名称为“star”;将“陨石”电影剪辑素材拖放到“陨石”图层,打开属性面板,为该电影剪辑添加实例名称为“stone”;,摘星星,将“瓢虫”电影剪辑素材拖放到“瓢虫”图层,打开属性面板,为该电影剪辑素材添加实例名称为“fly”。单击“背景边框”图层,使用直线工具,绘制一个边框,盖住前面的运行图。单击“遮罩层”图层,使用矩形工具,绘制一个黑色矩形,使

39、矩形的位置正好覆盖背景边框内部的区域。,摘星星,选中“遮罩层”图层,执行“修改图层”命令,弹出“图层属性”对话框,选择“遮罩层”单选按钮,图层设置效果如图所示。,摘星星,选中“瓢虫”图层,执行“修改”“图层”命令,弹出图层属性对话框,选择“被遮罩”单选按钮,如图所示。,摘星星,重复前面的步骤,将“陨石”、“星星”、“背景”3个图层的图层属性也设置为“被遮罩”。单击“文字”图层,在场景内的右下角添加一个文本框,输入汉字“能量”。设置字体为方正水拄简体,字号为12,文字颜色为黑色。在旁边添加一个变量名为“energy”的动态文本框,表示能量的多少。,摘星星,再添加2个文本框,分别输入汉字“第”、“

40、关”,设置字体,字号为12,文字颜色为黑色。两文字中间留一空格,在两文字中间添加一个变量名为“lev”的动态文本框,表示“第几关”。,摘星星,打开属性面板,具体设置如图所示。调整好各个文本框的位置。,摘星星,Action指令设置:单击“动作”图层第1帧,打开动作面板,输入代码。/初始化变量stonenum=10;starnum=5;lev=1;energy=100;findingstar=0;/定义自动生成石头函数,function createstone(n)while(nstarnum)duplicateMovieClip(_root.stone,stone+n,n);_rootstone

41、+n._x=int(Math.random()*400);_rootstone+n._y=int(Math.random()*200);_rootstone+n._alpha=50;mxy=int(Math.random()*100+50);_rootstone+n._xscale=mxy;,摘星星,_rootstone+n._yscale=mxy;n-;function deletestone(p)while(pstarnum)trace(p);removeMovieClip(_rootstone+p);p-;,/定义自动生成星星函数function createstar(m)while(m

42、=1)duplicateMovieClip(_root.star,star+m,m);_rootstar+m._x=int(Math.random()*400);_rootstar+m._y=int(Math.random()*200);mxy=int(Math.random()*100+60);_rootstar+m._xscale=mxy;,摘星星,_rootstar+m._yscale=mxy;m-;createstone(stonenum+starnum);createstar(starnum);_root.onEnterFrame=function()var x;/游戏结束,if(e

43、nergy=0)gotoAndStop(2);/游戏过关if(findingstar=starnum)findingstar=0;lev+;stonenum+;createstone(stonenum+starnum);createstar(starnum);,摘星星,/检测碰撞x=stonenum+starnum;while(xstarnum)if(_root.fly.hitTest(_rootstone+x)energy-;x-;x=starnum;,while(x=1)if(_root.fly.hitTest(_rootstar+x)removeMovieClip(_rootstar+x

44、);energy=energy+20;findingstar+;x-;stop();,摘星星,说明:在FlashMX中检测两个对象是否相互碰撞,最简单的方法就是使用hitTest函数。语法:myMovieClip.hitTest(target)myMovieClip:表示源电影剪辑素材实例名称。Target:表示目标电影剪辑素材实例名称。,摘星星,该函数还可以检测电影剪辑素材与一个坐标点是否碰撞。语法:myMovieClip.hitTest(x,y,shapeFlag)myMovieClip:表示源电影剪辑素材实例名称。x:表示场景的x坐标值。y:表示场景的y坐标值。shapeFlag:一个B

45、oolean变量,值可以为true或false。,摘星星,选中“动作”图层第2帧,按F6插入关键帧,打开“动作”面板,输入指令如下:deletestone(stonenum+starnum);stop();,摘星星,单击“瓢虫”图层,选中“瓢虫”电影剪辑素材,打开动作面板,输入动作代码:onClipEvent(load)/declare and set initial variablesthrust=1;decay=.97;maxSpeed=4;,onClipEvent(enterFrame)/rotate right or leftif(Key.isDown(Key.RIGHT)_rotat

46、ion+=10;if(Key.isDown(Key.LEFT)_rotation-=10;if(Key.isDown(Key.UP)/calculate speed and trajectory based on rotation,摘星星,xSpeed+=thrust*Math.sin(_rotation*(Math.PI/180);ySpeed+=thrust*Math.cos(_rotation*(Math.PI/180);flames._visible=1;else/deccelerate when Up Arrow key is releasedxSpeed*=decay;ySpeed

47、*=decay;flames._visible=0;,/maintain speed limitspeed=Math.sqrt(xSpeed*xSpeed)+(ySpeed*ySpeed);if(speedmaxSpeed)xSpeed*=maxSpeed/speed;ySpeed*=maxSpeed/speed;/move beetle based on calculations above_y-=ySpeed;_x+=xSpeed;/loop to opposite side of the stage when the beetle travels off-screen,摘星星,if(_y232)_y=0;if(_x465)_x=0;,将库窗口中的“再来一次”按钮元件拖到“动作”图层第2帧,放在场景的正中央,打开动作面板,输入如下动作代码:on(release)gotoAndStop(1);,摘星星,至此本游戏制作完成,使用Ctrl+Enter快捷组合键运行游戏。本例使用了游戏中最常用的碰撞检测技术,在Flash MX中我们可以使用hitTest函数来检测两个对象是否相互碰撞,例如:在射击游戏中标准器与被射击对象之间的碰撞,拼图游戏中图块与移动区域的碰撞。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号