版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE320网页设计与制作教程PAGE319第13章FlashMX2004动画的交互功能第13章FlashMX2004动画的交互功能教学提示:Flash动画的交互性设计,令网页动画多了几分灵气。访问者可以通过键盘或鼠标操作从一个动画跳转到另一个,可进行移动对象、输入信息或进行其他形式的交互操作,实现人机对话。本章介绍了一些FlashMX2004动画的交互功能和基本的Flash编程技术。教学目标:通过本章的学习,要求读者了解FlashMX2004编程语言的基础知识,掌握动作的基本语言和设置、按钮应用及控制影片剪辑等。13.1语言编程的基础Flash把人和计算机交流的语言叫作“动作(Actions)”,这实质上是一种编程语言,编程语言是把人们的想法转化成计算机能够识别的语言,从而进行人机交流。在Flash中,可以利用编程设置的动作语言与计算机进行对话。动作是Flash的脚本语言,使用动作建立导航和交互的组件,使Flash可以创建更高级、更精彩的交互电影和Web应用。13.1.1编程语言的基本概念Flash编程是指利用Flash内置的“动作”脚本语句进行程序设计,Macromedia公司在FlashMX2004中增添了几十条非常有用的“动作”脚本语句。FlashMX2004的脚本语言是面向对象(Object-Oriented)的,从概念上来说,对象是开发系统中任何可见的实例,在FlashMX2004中面向对象的概念被很巧妙地结合在了Flash的符号里面。所谓面向对象,就是指将所有一类物品的相关信息组织起来,放在一个称作类的集合里面,这些信息被称作属性和方法,然后为这个类创建实例,这些实例被称作是对象。这样的实例就拥有了它所有类的属性和方法。举个例子来说明,如果定义动物是一个类,那么这个类的单独的实例就是猴子、大象、老虎这样单独的动物形体;我们描述动物总有一些单独的语言,比如高度,性别,年龄等,这就是类的属性;这些动物们能够觅食,繁衍后代,这就是动物这个类的方法。总之,一句话概括,动物这个类有高度、年龄、性别等这些类的属性;有觅食、繁衍、打斗的方法;有大象、猴子这些类的实例;它们都有动物这个类的属性和方法,这就是面向对象的思想,这样做的目的是为了重用动作,而且能够更好地模拟真实的世界环境。Flash对象不仅仅是一般自定义地用来装载各种数据的类,以及Flash自带的一系列对象,如Sound,Color等,还可以是每一个定义在场景中的影片剪辑(简称影片剪辑)的实例,实例影片剪辑是属于Flash预定义的一个名叫影片剪辑的类,这个预定义的类有_totalframe,_height,_visible等一系列的属性,同时也有gotoAndPlay,nextframe等方法,所以每个单独的实例影片剪辑都有这个类的属性和方法。
13.1.2Flash的编程语言与JavaScript的区别和联系FlashMX2004的脚本编程语言由于整合了很多新的语法,使它在一定程度上看起来很像JavaScript,这是因为FlashMX2004的“动作”采用了和JavaScript一样的ECMA-292的语法标准,如果读者熟悉JavaScript,理解FlashMX2004的动作就容易多了。但是这两者间又有区别,它们之间的区别和联系如下:动作不支持浏览器相关的对象,如Document,Anchor,Window……动作不支持全部的JavaScript预定义对象。动作不支持JavaScript的函数构造。动作只能用eval语句来处理变量,从而直接得到变量的值。在JavaScript中,如果把一个没有定义的变量转换成字符串string类型,会得到一个未定义的变量,在动作中则将返回一个空字符串。动作不支持Unicode动作。13.1.3编程动作的书写方法动作语言是Flash的脚本语言,使用动作语言建立导航和交互的组件,使Flash可以创建更高的交互电影和Web应用。选择【窗口】|【动作】命令,或者直接按F2键即可打开【动作】面板,如图13.1所示,用鼠标将其拉长可以显示全部动作的类型。图13.1【动作】面板Flash的【动作】面板全部拉开后,出现左右两个窗格,左边是用来选择用哪一种动作的,右边用来显示具体的动作语句,FlashMX2004提供了两种模式:普通模式和专家模式。在普通模式中,不能直接对动作列表进行操作,只能在左边选择使用的动作,然后在面板的右中部选择相关参数,这样,单击选中的动作之后,在右边才能显示正确的动作语句,如图13.2所示。图13.2选择命令以设定简单的play命令为例,我们选中的是动作“帧动作脚本1图层名称图层1”,选择【全局函数】|【时间轴控制】命令,然后双击play,就设置了动作表达式,如图13.3所示。如图13.4所示,在设置的【动作】面板中,场景标签是当前场景,类型是帧数,帧的数量是1,这表示跳转并播放第一帧,当Flash动画播放到设置动作的帧时,就会执行这个动作语句而改变播放顺序。图13.3从菜单中选择命令图13.4动作语句在FlashMX2004中,我们可以直接输入动作命令,这时我们如果要加上GotoAndPlay()命令,就可以直接用键盘输入,如图13.5所示。动作语句都是按照排列的顺序,从上到下一行行地执行的。
图13.5输入命令Flash中的动作命令有一百多种,FlashMX2004新增了很多的命令,因此,有关Flash动作语言的部分是一个大的专题,我们不能在此对动作语言每一个语句的用法作详细地讲述,如果读者在这方面有兴趣,可以参阅此专题的相关书籍,在此我们只对一些基本的使用功能作一下阐述。下面我们来解释【动作】面板中一些菜单的用法。单击【动作】面板右上角的按钮,在弹出的菜单中,可以看到其他很多关于编程环境设置的命令选项,其中有一些文字编辑的命令选项,如图13.6所示。【转到行】:执行后会把光标跳到指定的那一行。【查找】:寻找字符或字符串。【再次查找】:再次查找字符或字符串。【替换】:找到后用制定的语句替换。【语法检查】:检查语法错误。还可以从其他文本中导入脚本,也可以将脚本导出成文本文件,也就是说,在用Flash编写脚本时,可以用其他第三方的编辑器编辑好脚本,然后导入,如图13.7所示。图13.6菜单(一)图13.7菜单(二)【导入脚本】:表示对象是从文件中导入。【导出脚本】:把当前的编程语言导出。【打印】:将文本打印出来。
13.1.4为帧书写脚本在Flash中,有两个地方书写脚本动作,一个是在时间轴上的关键帧里;另一个在对象的事件里,比如按钮的触发事件、影片剪辑的Loading事件等,下面将简单地介绍两种动作的书写方法。如果一个影片的时间轴上没有任何的关键帧设置动作语言,那么这个电影将从第1帧开始“平铺直叙”地播放到最后一帧,如果需要电影进行到某一个关键帧时执行一些特定的动作,就需要给这个关键帧加上特定的动作语言。举个例子来说,如果需要实现电影播放到第10帧时,跳转到第5帧开始播放,就需要在第10帧加上如图13.8所示的语句。这样当影片播放到第10帧的时候,就会返回来从第5帧开始重新播放,这种类型的帧上会显示一个字母“a”。分配一个动作给关键帧的具体操作步骤如下:(1) 在时间轴上选择要赋予动作的关键帧,并选择Window菜单中的动作。如果该关键帧没有被选中,动作将被赋予前面的关键帧。(2) 选中动作标签,单击“+”号,然后从弹出的菜单中选择一个动作。(3) 可以设置当运行到此帧时的更多响应,Flash按照顺序执行这些设置的动作,用上下按钮可以改变其顺序。图13.8加入帧语句13.1.5为对象书写动作Flash可以给按钮和影片剪辑加上动作,下面来介绍加入动作的两种方法。1.给按钮加上动作按钮主要响应的是鼠标事件,比如说鼠标单击、滑过、滑出、拖动……也就是说当鼠标在按钮上单击、滑过、滑出……时会触发和执行相应的动作语言,按钮的触发事件如图13.9所示。图13.9定义按钮触发事件当鼠标在一个按钮上按下或经过按钮上方时,产生一个响应动作,而且又不会影响其他的按钮响应。定义按钮事件,我们要用到实例,前面我们介绍过,如果我们将某个常用对象加到元件库中,每当从中引用一次,被引用的这一次就是一个实例,如果说元件是一个子程序,那么实例就是一次调用。下面是制作一个按钮交互的具体步骤:(1) 从库中选择一个按钮实例拖拽到场景中,然后在菜单中选择动作标签。(2) 单击“+”号,然后从弹出菜单中选择一个动作,如果该标签不可用,说明你选择的不是一个按钮实例。(3) 选择了一个动作后,Flash自动插入一个On|EndOn语句,并设置Release为默认的按钮状态。任何时候你都可以通过选择OnMouseEvent来插入一个On|EndOn语句。在事件选项中,On(Release)突出显示,选择一个激活动作的鼠标或键盘事件。下面是每个选项的具体响应含义:press(按):当指针经过一个按钮并按下鼠标左按钮时激活。release(释放):当指针在按钮上,按下的鼠标按钮被释放时激活。releaseOutside(外部释放):当鼠标指针在按钮范围之外被按下后释放时激活。rollOver(滑过):当鼠标指针从按钮上方经过时激活。rollOut(滑离):当鼠标指针经过按钮区域之外时激活。dragOver(拖过):当按住鼠标从按钮对象中向外拖拽出来后,不要松开鼠标重新返回按钮,事件将被激活,就如同拉开枪栓再打回去,子弹被激活一般。dragOut(拖离):当从按钮对象中向外拖拽出对象范围时,事件将被激活。keyPressLefts“<>”(按键):当指定的键盘按键被按下时激活事件。(4) 单击“+”号按钮并从打开的菜单中选择一个需要的动作,系统会给出一些默认的内容,如果对各项参数比较熟悉的话,还可以输入一些参数加以控制。(5) 测试按钮,具体步骤是在控制菜单中选择启用简单按钮,然后选择测试影片。与给帧写脚本一样,可以选中一个按钮,打开动作的编程环境,然后给每个按钮写上触发事件和脚本。2.给影片剪辑加上动作对于影片剪辑来说,触发事件比较复杂一些,不过影片剪辑是相应很有用的,如果利用得好,可以省去很多的麻烦,影片剪辑的触发事件如图13.10所示。对影片剪辑事件的说明如下:load(加载):当一个影片剪辑在主场景中载入的同时触发。enterFrame(进入帧):当影片剪辑每一帧运行的时候都触发(即使只有一帧也会不停地执行)。unload(卸载):和Unload影片剪辑搭配使用,在影片剪辑被此语句移除时触发。mouseDown(鼠标向下):当鼠标按下时触发。mouseUp(鼠标向上):当鼠标放开时触发。mouseMove(鼠标移动):当鼠标移动时触发。keyDown(向下键):键盘上特定键按下时触发,一般和Key对象中的getCode()函数连用。keyUp(向上键):键盘上特定键放开时触发,类似于KeyDown。data(数据):当数据接收到时触发,通常和loadvarible及loadmovie搭配,当数据传输完成时触发。图13.10定义影片剪辑触发事件13.2动作的基本语言Flash中的交互由行为和结果两部分组成。行为的实现是由动作来完成的,首先我们应该来学习最基本的动作语句。13.2.1跳转语句使用goto语句跳转到动画中另一个指定的帧或场景。你会得到下面一个选项:停在跳转到的帧呢,还是运行后返回从此帧继续运行。跳转语句的两种形式的格式分别如下所示:gotoAndPlay(scane,frame);或gotoAndStop(scane,frame);它们的区别在于跳转到目标帧以后是继续播放还是停止播放,比如用户在松开按钮时,跳转到第1帧并且停止播放,其动作编写如下:on(release){ gotoAndStop(1);}动作设定如图13.11所示。图13.11设定动作13.2.2跳转到URLgetURL用于建立Web页面链接,该命令不但可以完成超文本链接,而且还可以链接FTP地址、CGI脚本和其他Flash影片的内容。使用getURL语句来装入另一个URL,或传送变量到另一个应用的URL,要测试这个动作,文件必须在指定的位置,并且绝对路径可以可靠地连接,例如:http://www.,如图13.12所示。图13.12使用getURL语句在测试影片时URL连接的效果并不能表现出来,只有在浏览器中或者是Flash播放器中才能看到连接的地址。13.2.3监测某帧是否下载使用framesloaded属性(包含IF语句)或IfFrameIsLoaded语句来监测指定帧中的内容在本机上是否可用,利用这一条件来启动一个简短等待动画,免得访客等得心焦。二者的主要区别是If(_framesloaded)语句引导你加入一个Else或ElseIf语句到你的动作事件中,非常快捷。而IfFrameIsLoaded语句引导你在语句中指定一个帧的数值。下面是一些具体应用的介绍:(1)当所有的帧都已下载并开始播放,使用IfFrameIsLoaded建立一个动作事件跳出动画循环。例如一个循环的动画只有2帧,需要下面的语句才能在第2帧下载后条件满足时正确跳出:If(framesloaded){gotoandPlay(3);}else{GotoandPlay(1);}动作设定如图13.13所示。图13.13动作语句(2)如果一个30帧的动画下载完毕之前循环播放一个一两帧的动画,当下载完毕时需要跳出,设置下面的语句才能正确匹配到第1帧:ifFrameLoaded(30){GotoandPlay(3)}动作设定如图13.14所示。当我们插入一个IfFrameLoaded语句时,Flash会自动在结尾处插入一个EndIfFrameisLoaded作为结束标记。在上述循环播放的小动画的第2帧应匹配一个动作事件,重新回到第1帧,以实现循环:GotoandPlay(1)当在IfFrameisLoaded语句中指定的帧成功装入时,动画就会播放完第2帧后从第3帧接着开始继续播放,而退出循环。这种技巧一般在下载一个大的图片或声音文件时被采用。图13.14动作语句13.2.4发送信息到动画主程序使用FSCommand语句来传送一个信息到任何一个FlashPlayer中的动画程序。如果你不熟悉JavaScript或buildingprojectors,你将不得不使用FSCommand。FSCommand有“命令”和“参数”两个参数,在命令对话框中输入你要传送的字串,如果该字串需要参数,在参数对话框中输入即可。在Flash动画中加入FSCommand语句,可定义影片播放的一些参数,例如可以使用“FSCommand("fullscreen","true");”让影片全屏幕播放,或者使用“FSCommand
("allowscale","false");”令影片在设定好的比例播放。下面是一些特别有用的FSCommand语句,可以实现对动画的灵活控制:fullscreen:参数是true/false,功能是设置是否全屏幕播放。allowscale:参数是true/false,功能是设置动画下载总是完全且图像不变形。showmenu:参数是true/false,功能是允许使用右击菜单,False隐藏菜单条。Quit:参数无,功能是关闭放映。13.2.5编辑动画片段1.复制或移走一个动画片段使用DuplicateMovieClip语句,当一个动画正在播放时,可以建立一个该动画片段的调用,并且不管从原始动画片段运行到何时调用,复制出的动画片段都从第1帧开始播放。使用RemoveMovieClip语句删除这样的一个调用,以下两个语句有下面几个主要参数:目标:指定要复制或删除的动画片段。新名称:给复制出的片段一个名称。深度:决定复制出的对象的显示深度,每一个复制出的对象都在原始动画片段的上方。2.可拖动的动画片段使用startDragMovieClip语句可以让动画片段播放时被允许移动,该语句可以设置开始或停止拖动操作,直到被StopDrag制止或另一个动画被允许拖动,因为同时只能有一个动画被允许拖动。startDragMovieClip有下面几个参数:目标:指定要拖动的动画片段。限制为矩形:设置允许拖动的区域。锁定鼠标到中央:设置动画片段的中心直接在用户鼠标指针处。当此项未被选取时,拖动时会保持一个相对的偏移位置。比如说这个事件强迫动画片段m在一个200像素×200像素的框中:On(release){startDrag("m",true,100,100,300,300);}动作的设置如图13.15所示。图13.15动作设置3.改变动画片段的位置和显示外观使用SetProperty语句来改变一个动画片段的位置、比率、透明度、旋转等显示属性,如图13.16所示。SetProperty有下面一些参数:_alpha(Alpha):设置透明度。_heigh(高度)和_width(宽度):指定要改变对象的宽度和高度。_x(X位置)和_y(Y位置):指定相对于父动画片段的偏移量。_xScale(X缩放系数)和_yScale(Y缩放系数):指定水平和垂直方向的比率。visible(可见性):指定动画是否可见。_rotation(旋转):设置一个动画的旋转,可以输入旋转的度数。_name(名称):指定你要设置的动画片段。图13.16参数比如说我们用下面的语句设置一个动画m的Y位置为100:On(release){SetProperty("m",_y,"100");}动作设置如图13.17所示。图13.17设置命令4.插入动画片段Load/UnloadMovie提供了插入一个或者多个外部的SWF文件到一个Flash影片的方法,它可以用不同的影片替换当前的影片或者同时显示多个影片。比如说一个Flash影片制作了四个部分,如果想看最后一个部分,就必须要等待前三个部分全部下载完毕,这无疑是非常浪费时间的,一个好的办法就是把这个影片分成四个SWF文件,然后根据用户的要求下载需要的部分。将外部的SWF文件加载到当前的影片中的步骤如下:(1) 在主场景上放置一个按钮。(2) 为这个按钮的Release事件增加LoadMovie动作,在URL里设置SWF的文件地址,在Location后面的数字栏中输入影片片段的位置,如图13.18所示。图13.18设置按钮动作(3) 单击【确定】按钮确定,这样,当用户单击按钮时,就会自动下载并播放这个外部的影片片段。当不再需要从外部加载影片时,为了减轻对系统资源的占用,应该使用Unload命令将它卸载。13.2.6条件语句条件语句是最基本的控制语句之一,它根据表达式的逻辑值执行不同的操作,条件语句的一般格式如下所示:if(condition){statement;}else{statement(s)};Flash里没有select语句,要实现多个并列的判断时,可以使用if…else…if语句,它的格式如下所示:if(condition(1){
statement(1);
}elseif(condition(2){
statement(2);
}elseif(condition(3){
statement(3);
}例如,要根据考试成绩来评定等级,可以使用下面的动作:if(result<60){grade="D";}elseif(result<70){grade="C";}elseif(result<90){ grade="B";}elseif(result<=100){ grade="A";在【动作】面板的普通模式中输入条件语句的方法是首先输入if语句,然后根据情况在if语句后面输入elseif语句或者else语句。13.3按钮控制影片实例与Flash动画交互的主要方法是通过各种风格的按钮。当单击按钮时,它可以传送命令来触发各种表演的动作,比如开始或者是停止动画的播放,以及不经过播放从一处跳到另一处。13.3.1制作按钮动画按钮元件是用来创建影像中的鼠标事件,在Flash动画中一般用于【开始】按钮或【重播】按钮的制作,按钮组件有与其他组件不同的帧结构,按钮组件的时间轴可分为四个帧,每一帧代表按钮组件的一种状态。我们来制作一个小动物的按钮,当鼠标移到上面会改变颜色,按下时会发出声音。具体制作步骤如下:(1) 打开Flash,建立一个新文件。选择【插入】|【新建元件】命令,在出现的对话框中选择按钮类型,命名为【按钮】,然后单击【确定】按钮。(2) 在按钮编辑窗口,时间轴【弹起】处会有一个空心小圆点,表示你现在可以在弹起处进行绘图,在工作区用绘图工具中的圆形工具画上一个圈,这就是按键的最外圈。(3) 选取圆,然后再选取颜料桶工具(PaintBucket),在下方会出现填充颜料的工具,选中它,会弹出一个调色板,直接在最底层选取一个黑白色的圆形渐变颜色,然后调整渐变色的中心点,注意,要让中心点偏左上,这样立体感更强,如图13.19所示。(4) 选择【插入】|【图层】命令新建一个图层,再如步骤(2)那样画一个圆,要比前一个图形小一些,它的大小决定了按钮边缘的宽度。注意,在填色时要让中心点偏右下,如图13.20所示。(5) 再新建一个图层,再画一个圆,不过这次用蓝的渐变色来填充,中心点偏左上,如图13.21所示。(6) 再新建一个图层,绘制一个动画图形,如图13.22所示。(7) 现在我们要完成【按钮】的其他状态,即“指针经过”和“按下”的状态,在时间轴上“指针经过”栏中,每一个层都按F6键插入关键帧,这样就把“弹起”时的状态全都复制到“指针经过”状态了。(8) 接下来要改变“卡通形象”层和“按钮”层的图案,用其他的渐变色来代替蓝色的渐变色填充,如图13.23所示。(9) 在时间轴上“按下”栏中,每一个层都按F6键插入关键帧,选取按钮的渐变图形,将其缩小些,然后填以红色的渐变色,但要将中心点偏右下。把按钮上面的图形同样也缩小一些,如图13.24所示。图13.19绘制图形(一)图13.20绘制图形(二)图13.21绘制按钮图13.22绘制图案图13.23指针经过状态的按钮图13.24按下状态的按钮(10) 新增一层,在“按下”帧插入空帧,从库中拖出能发出按键效果的声音文件到工作区,如图13.25所示。这样,有形有色有声的按钮就大功告成,你还可以充分发挥你的才能,做出更好的效果。图13.25插入声音(11) 我们可在编辑状态检测按钮。切换至主场景,将做好的按钮从库中拖到工作区,选择【控制】|【启用简单按钮】命令,这时按钮就能感应你的鼠标动作。我们把音乐加载“按下”状态下,这表示我们单击鼠标会发出声音,同样我们也可以把音乐加在“指针经过”状态下,鼠标经过按钮时会发出声音,但是千万不要把音乐加在“单击”帧上,“单击”是隐藏的,它只是代表鼠标的感应区域,如果加在它上面的话,就永远也听不到音乐声音了。而第1帧的“弹起”是表示一般状态的,把音乐加在它上面的话,即使我们不去碰按钮,它也会响个不停。13.3.2设置按钮控制命令在Flash中,按钮是非常有用的一种东西,如果对动画不加干涉,动画一经加载就会立即播放,通常我们需要加入一个停止命令来阻止动画在加载完毕时立即播放,下面我们就来给按钮添加命令,用按钮来控制影片的播放。以卡通鱼游动的动画为实例,用在上一节完成的按钮来控制这段动画。(1) 打开我们在第12章做好的实例,如图13.26所示。在这段动画中一共有两个图层,当我们测试动画时,它会不停地播放。图13.26动画(2) 下面来给动画添加脚本,动画脚本可以被包含在任何一个关键帧中,但是将动画的动作放在单独的图层中是一个很好的办法,这方便动作以后的查找和编辑。新建一层,命名为“动作”,我们在这一层给影片添加命令,选中第1帧,打开【动作】面板。(3) 单击并且按住按钮,从弹出的命令列表中选择【全局函数】|【时间轴控制】|stop命令,如图13.27所示,可以看见,stop的命令出现在动作脚本的窗口中。图13.27添加命令动作图层中位于第1帧的关键帧上面有一个“a”的标记,如图13.28所示。(4) 按Alt+Enter组合键测试动画效果,可以发现,动画画面停止下来了,看上去就像是一幅静止的画。(5) 现在动画停下来了,还需要让动画重新开始播放,所以需要给它添加一个按钮,新建一层,命名为“按钮”,将我们做好的按钮拖放到第1帧上,如图13.29所示,在第2帧按F7键插入空白关键帧。图13.28动作图层中有“a”标记图13.29添加按钮(6) 现在给按钮设置动作,选中按钮,打开【动作】面板。(7) 单击并且按住按钮,从弹出的命令列表中选择【全局函数】|【时间轴控制】|play命令,如图13.30所示。(8) 按Alt+Enter组合键测试动画效果,可以发现,动画画面停止下来了,当单击画面中的按钮以后,画面开始播放。(9) 在命令窗口中选择play命令,然后单击按钮,将命令删除,下面再来设置goto命令。(10) 单击并按住按钮,从弹出的命令列表中选择【全局函数】|【时间轴控制】gotoAndPlay命令,如图13.31所示。图13.30添加命令图13.31设置gotoAndPlay命令(11) 在命令窗口中,我们可以看到各种鼠标事件,如图13.32所示,其中release是默认的鼠标事件。当你选择了一个动作,Flash自动插入一个On/EndOn语句,并设置release为默认的按钮状态。任何时候你都可以通过选择OnMouseEvent来插入一个On/EndOn语句。(12) 在命令窗口中选择gotoAndPlay((1)命令,这时在【命令】面板上可以看到各种属性设置选项,如图13.33所示。(13) 确保【场景】列表中选择【当前场景】,【类型】下拉列表中选择【类型】,在【帧】下拉列表中输入2。图13.32鼠标事件图13.33属性设置选项(14) 按Ctrl+Enter组合键测试动画效果,如图13.34所示,单击按钮释放以后,动画进入到第2帧播放。图13.34测试动画13.4影片片段活用实例影片片段在Flash的动画和游戏制作中起主要的作用,哪怕不使用按钮,利用影片片段也能够代替所有的功能。影片片段以时间轴的形式存在,并且包含所有的要素,在制作游戏时,关键点就是如何设计和控制一段影片片段。13.4.1控制卡通鱼随机运动这次我们让小鱼儿自由地游来游去。先要了解Random函数,Random也叫随机数发生函数,简单地说就是任意选出一个来发生的函数。举例来说,我们平时玩皮球,把红色、蓝色、绿色的皮球放进同一个袋子,然后再从中取一个皮球,这样就可能随时选择三个皮球当中的任意一个。(1) 选择【文件】|【新建】命令建立一个新文件。(2) 选择【插入】|【创建新元件】命令,创建一个名称为“鱼”的影片剪辑,单击【确定】按钮。(3) 在元件编辑区,调入我们绘制好的鱼儿的图像,如图13.35所示。(4) 单击Scene1回到主场景当中,然后在元件库里找到“鱼”的影片剪辑,将它拖拽到场景中央。(5) 用鼠标选取该电影剪辑,打开【动作】面板,如图13.36所示。图13.35制作影片剪辑图13.36选取动作命令(6) 在打开的【动作】面板,并输入下列语句:onClipEvent(enterFrame){//使鱼从各个方向出现this._x=random(450)+100;this._y=random(300)+100;}如图13.37所示。图13.37输入语句(7) 到此为止,我们的随机函数动画就制作完成了,然后按Ctrl+Enter组合键预览动画效果,可以看到鱼来回不定地在屏幕里游动。下面解释一下实例中的动作命令,首先发生在EnterFrame事件时调出onClipEvent(),而且_x和_y是在影片片段中已将实例定义好的默认属性,_x代表横向位置,_y代表纵向位置,random(450)的含义是当0~499之间的某个数值发生时就在那个数值上增加100。13.4.2利用键盘控制魔鬼头影片在制作游戏的时候会发现有时候需要用键盘来输入或控制对象,这时候就要利用“Key.getCode()”或者是“Key.isDown()”等,Key.getCode()是返回最后输入键值的方法,所以在使用影片片段命令的情况下,往往只有在发生keyDown事件或keyUp事件时才能执行,下面我们使用命令让魔鬼头的影片剪辑动起来。(1) 选择【文件】|【新建】命令建立一个新文件。(2) 选择【插入】|【创建新元件】命令,创建一个名称为“魔鬼”的影片剪辑,单击【确定】按钮。(3) 在元件编辑区,绘制好魔鬼先生的图像,如图13.38所示。(4) 返回主场景,在元件库里找到“魔鬼”的元件,将它拖拽到场景中央,用鼠标右键单击魔鬼元件,在弹出的菜单中选择【动作】命令,打开【动作】面板。(5) 在【动作】面板然后输入下列语句:onClipEvent(keyDown){ //移动速度 speed=5; //获取keyCode keyIn=Key.getCode(); //根据方向移动 if(Keyin==Key.LEFT){ this._x–=speed; }elseif(Keyin==Key.RIGHT){ this._x+=speed; }elseif(Keyin==Key.DOWN){ this._y+=speed; }elseif(keyIn=Key.UP){ this._y–=speed; }}如图13.39所示。该语句表示的意思是在onClipEvent中插入了KeyDown事件,按下按键时执行相应的动作。将速度设置为“speed=5”,使一次移动5像素;keyIn=Key.getCode();是利用Key.getCode()来读最后按下的键,根据每个KeyCode利用sp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市生活垃圾分类处理合同3篇
- 医疗设备维护服务合同2篇
- 沙子水泥供应合同范例
- 合作销售平房合同范例
- 旅游住宿合同范例
- 劳务安装合同范例
- 水产养殖业合同范例
- 委托代签代理合同范例
- 浴池外包合同范例
- 民间购房屋合同范例
- 10kv电力施工方案
- 某港口码头工程施工组织设计
- 2024年部编版语文五年级上册全册单元检测题及答案(共8套)
- 2024基层医疗机构院感防控管理能力提升培训考核试题及答案
- 普通外科国家临床重点专科建设项目申报书
- 2020海湾JTW-LD-GST85B缆式线型感温火灾探测器
- 微测网题库完整版行测
- 2024中华人民共和国农村集体经济组织法详细解读课件
- 110kV变电站专项电气试验及调试方案
- 2024应急管理部国家自然灾害防治研究院公开招聘34人(高频重点提升专题训练)共500题附带答案详解
- 俄语入门智慧树知到期末考试答案章节答案2024年吉林师范大学
评论
0/150
提交评论