第2单元动画演出内容的编程设计课件.ppt

上传人(卖家):晟晟文业 文档编号:5175627 上传时间:2023-02-16 格式:PPT 页数:64 大小:1.17MB
下载 相关 举报
第2单元动画演出内容的编程设计课件.ppt_第1页
第1页 / 共64页
第2单元动画演出内容的编程设计课件.ppt_第2页
第2页 / 共64页
第2单元动画演出内容的编程设计课件.ppt_第3页
第3页 / 共64页
第2单元动画演出内容的编程设计课件.ppt_第4页
第4页 / 共64页
第2单元动画演出内容的编程设计课件.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

1、第单元动画演出内容的编程设计第单元动画演出内容的编程设计项目三交互生日贺卡项目三交互生日贺卡加入加入移除演员移除演员v在单击鼠标位置动态加入演员在单击鼠标位置动态加入演员发老虎演员素材发老虎演员素材.flav在单击实例时在单击实例时,移除移除发斑马素材发斑马素材.fla2-1动画演员的增减动画演员的增减v改造项目:改造项目:使演员数量进行动态变换使演员数量进行动态变换实现交互,鼠标单击加入老虎动物角色,增加实现交互,鼠标单击加入老虎动物角色,增加10个时,出现瞄准器移动瞄准器,单击后可删除个时,出现瞄准器移动瞄准器,单击后可删除已加入的老虎角色已加入的老虎角色v准备素材准备素材背景底图、老虎影

2、片剪辑、瞄准器影片剪辑背景底图、老虎影片剪辑、瞄准器影片剪辑v实现思路实现思路鼠标单击出现老虎角色的技术支持鼠标单击出现老虎角色的技术支持v将老虎元件属性定义为类,单击时不断创建该类的实例将老虎元件属性定义为类,单击时不断创建该类的实例v定义事件定义事件(click)侦听器,编写监听函数侦听器,编写监听函数copyMc()加入演加入演员。并计数员。并计数当老虎数量达到当老虎数量达到10个时,不在增加老虎用瞄准个时,不在增加老虎用瞄准器删除老虎的技术器删除老虎的技术v当计数到当计数到10个时,出现瞄准器,单击可以删除老虎演员个时,出现瞄准器,单击可以删除老虎演员sh_mc.startDrag(t

3、rue);删除click侦听器;侦听器;重新注册侦听器,定义删除函数重新注册侦听器,定义删除函数当只剩最后一个老虎时,不再删除v程序代码程序代码var m=1;stage.addEventListener(MouseEvent.CLICK,copyMc);function copyMc(me:MouseEvent)var tCopyMc:tiger=new tiger();tCopyMc.x=mouseX;tCopyMc.y=mouseY;this.addChild(tCopyMc);m=m+1;if(m=11)sh_mc.startDrag(true);stage.removeEventLi

4、stener(MouseEvent.CLICK,copyMc);stage.addEventListener(click,delMc);function delMc(me:MouseEvent)removeChild(DisplayObject(me.target);m=m-1;if(m=1)stage.removeEventListener(click,delMc);/增加了DisplayObject()函数,将隐匿的对象转换为显示对象事件的目标对象事件的目标对象 targetEvent 类的类的target 和和currentTarget属性属性target 属性存储对事件目标的引用属性存

5、储对事件目标的引用currentTarget 属性存储对当前正在处理事件对象属性存储对当前正在处理事件对象的显示列表对象的引用的显示列表对象的引用 vvar circleMC:MovieClip=MovieClip(e.target)还可以写成还可以写成var circleMC:MovieClip=e.target as MovieClip即声明一个名称为即声明一个名称为circleMC的的MovieClip对象,让它等于一个也对象,让它等于一个也是是MovieClip类型的对象类型的对象vMovieClip(e.target)相当于把相当于把e.target转化为转化为MovieClip对象

6、对象 库中定义影片剪辑类库中定义影片剪辑类v个随机彩色气泡鼠标跟随个随机彩色气泡鼠标跟随技术实现要点:技术实现要点:1.建立气泡影片剪辑建立气泡影片剪辑圆注册点不在中心位置,加滤镜阴影效果制作位置移动动画圆注册点不在中心位置,加滤镜阴影效果制作位置移动动画.库中定义影片剪辑类库中定义影片剪辑类ball.注册帧频侦听事件注册帧频侦听事件.事件函数功能产生类事件函数功能产生类ball的实例,改变其旋转度,颜色,使产生的的实例,改变其旋转度,颜色,使产生的ball实例变为可拖动实例变为可拖动.产生一定数量后,删除侦听器产生一定数量后,删除侦听器随机彩色气泡鼠标跟随随机彩色气泡鼠标跟随流程图流程图初始

7、化计数器i;申请颜色变量myColor;定义事件函数copyball();注册帧频事件侦听器;i8产生新的气泡;定义气泡的旋转度;定义气泡的颜色;将气泡添加到主时间轴中;使气泡可拖动;i增加1;i=0;移除帧频事件侦听器;是否v随机彩色气泡鼠标跟程序代码随机彩色气泡鼠标跟程序代码创建显示列表创建显示列表v舞台是舞台是Stage类的实例,其属性是通过变量类的实例,其属性是通过变量stage属性来引用属性来引用 Stage类属于容器类,可以在舞台中添加其他显示实例类属于容器类,可以在舞台中添加其他显示实例在默认情况下,主时间轴是显示实例,已添加在舞台中在默认情况下,主时间轴是显示实例,已添加在舞台

8、中v任何一个显示实例肯定在一定的显示容器中,在实例化显示类时,要使任何一个显示实例肯定在一定的显示容器中,在实例化显示类时,要使用用addChild()方法将显示实例添加到显示列表中方法将显示实例添加到显示列表中添加和移除显示实例的方法添加和移除显示实例的方法addChild()将显示实例添加到显示列表中将显示实例添加到显示列表中addChildAt()通过索引将显示实例添加到显示列表通过索引将显示实例添加到显示列表中中removeChild()从显示列表中移除显示实例从显示列表中移除显示实例removeChildAt()通过索引从显示列表中移除显示实例通过索引从显示列表中移除显示实例要检测显

9、示容器中,有几个显示实例,可以用要检测显示容器中,有几个显示实例,可以用numChildren属性属性容器名称容器名称.numChildren给显示对象命名给显示对象命名显示对象变量显示对象变量Name=“XXXX”显示列表示例显示列表示例var sp1:Sprite=new Sprite();var sp2:Sprite=new Sprite();sp2.name=“sp2”;var sp3:Sprite=new Sprite();var sp4:Sprite=new Sprite();Sp4.name=“sp2_sp4”;/name属性定义实例名属性定义实例名stage.addChild(

10、sp1);this.addChild(sp2);sp2.addChild(sp3);sp2.addChild(sp4);rootstagesp1sp2sp3sp4trace(stage.numChildren);/检测某个容器有几个显示实例检测某个容器有几个显示实例trace(this.numChildren);trace(sp2.numChildren);注意:程序创建的显示对象,不能通过简单的点语法来访问;注意:程序创建的显示对象,不能通过简单的点语法来访问;显示列表的实例是手工创建的影片剪辑实例时,可用点语法向下访问显示列表的实例是手工创建的影片剪辑实例时,可用点语法向下访问MovieC

11、lip、Sprite、Shape的区别的区别vMovieClip:拥有一个时间轴,动态类:拥有一个时间轴,动态类。三者都包括。三者都包括 graphics 属性属性 vSprite:不需要时间轴的对象的相应基类:不需要时间轴的对象的相应基类,是去掉了时间轴,是去掉了时间轴的的MovieClip,不是动态类。对象是显示对象容器,不是动态类。对象是显示对象容器,Sprite 对象对象支持鼠标单击事件支持鼠标单击事件。vShape:创建简单形状:创建简单形状。Shape 对象比包含相同图形的对象比包含相同图形的 Sprite 对象消耗的内存少对象消耗的内存少,不支持鼠标单击事件,不支持鼠标单击事件(

12、startDrag(),不,不是容器不能包含子显示对象。是容器不能包含子显示对象。上一级引用上一级引用v从下向上访问:从下向上访问:parent属性属性trace(sp4.parent.name);trace(sp4.parent.Parent.name);rootstagesp1sp2sp3sp4下一级引用下一级引用vgetChildAt();据索引来访问据索引来访问vgetChildByName(name:String);据实例名来访问;据实例名来访问01舞台内反复运动的足球舞台内反复运动的足球v足球素材足球素材.fla(P36)通过帧频事件,以一定的增量不断改变影片剪辑通过帧频事件,以一

13、定的增量不断改变影片剪辑的的X、Y坐标坐标If语句判断上下左右边界的处理语句判断上下左右边界的处理vY300vX500with语句语句v多次参考元件的各个属性或方法,不需一再指定元件多次参考元件的各个属性或方法,不需一再指定元件的名称。从而潜在地减少需要编写的代码量的名称。从而潜在地减少需要编写的代码量with(实例名称实例名称)程序语句程序语句.with(mymc)x=100;y=100;scaleX=2;scaleY=2;alpha=0.9;rotation=45;示例:福到了示例:福到了.绘制影片剪辑,绘制影片剪辑,30*30正方形,在其上部正方形,在其上部输入福字并旋转输入福字并旋转1

14、35度,名为度,名为m_mc,放于放于场景在上角场景在上角v演员由远而近走来的效果演员由远而近走来的效果(move源文件源文件.fla)角色在场景中进行移动,同时有近大远小的效果角色在场景中进行移动,同时有近大远小的效果用用with进行源文件的修改(进行源文件的修改(move.fla)2-2演员的动作表演演员的动作表演v改造项目改造项目演员按指定位置行走演员按指定位置行走(xymove.fla)角色在场景中,能按照鼠标点击的位置进行移动,同时有近大远小的角色在场景中,能按照鼠标点击的位置进行移动,同时有近大远小的效果效果参参P42人物朝指定位置行走(女孩走路素材人物朝指定位置行走(女孩走路素材

15、.fla)2-2演员的动作表演演员的动作表演v准备素材准备素材背景底图、女孩走路影片剪辑背景底图、女孩走路影片剪辑gril_mc v实现思路实现思路设定设定gril_mc的初始位置,定义目标位置,走路动作停止的初始位置,定义目标位置,走路动作停止设置侦听器函数,编写监听函数设置侦听器函数,编写监听函数setXY,使女孩走路的目,使女孩走路的目标位置由单击鼠标决定标位置由单击鼠标决定设置设置enterFrame事件侦听器,编写女孩走到目标位置的实事件侦听器,编写女孩走到目标位置的实现方法主要包括现方法主要包括XY的变化,大小的变化的变化,大小的变化v程序代码程序代码var moveL=this.

16、height-girl_mc.height;/this.height是场景中对象重叠时,最高的数据;girl_mc.x=250;girl_mc.y=18;var myX=girl_mc.x;var myY=girl_mc.y;girl_mc.stop();stage.addEventListener(click,setXY);function setXY(me:MouseEvent)myX=this.mouseX;myY=this.mouseY;girl_mc.play();stage.addEventListener(enterFrame,moveGirl);function moveGir

17、l(me:Event)with(girl_mc)if(ymoveL)if(xmyX)x=x-2;if(ymyY)y=y-2;height-=(height/120);width-=(width/120);else stop();if(y=myY&x=myX)stop();v作业完成作业完成仿真仿真D角色移动,参见书角色移动,参见书P44v知识技能总结知识技能总结计数器变量的定义计数器变量的定义vvar 变量名:数据类型变量名:数据类型v数据类型数据类型简单类型个:简单类型个:int(32有符号整数有符号整数)var a:int=3.45;var name:String=“fox”uint(32

18、位无符号整数,非负整数)位无符号整数,非负整数)表示颜色值、键控代码值等表示颜色值、键控代码值等var color:uint=0 xff9900;trace(color);输出表示十进制整数的颜色值const KEY_A:uint=65;键A的代码值Number浮点运算浮点运算对于浮点运算不能用判断个数是否相等对于浮点运算不能用判断个数是否相等,浮点计算有误差浮点计算有误差trace(0.15+0.15=0.3)truetrace(0.1+0.2=0.3)false.v知识技能总结知识技能总结数据类型数据类型v简单类型:简单类型:Boolean布尔值布尔值非此即彼的数据,取值非此即彼的数据,取

19、值ture,false;var isRight:Boolean=true;String类型类型,由单引号或双引号括起来的字符串,由单引号或双引号括起来的字符串字符串的长度与索引:字符串的长度与索引:var name:String=“foxhhyy”;trace(name.length);7索引从开始索引从开始trace(name.charAt(2);x返回指定位置索引的字符返回指定位置索引的字符v知识技能总结知识技能总结数据类型数据类型v复杂数据类型:复杂数据类型:包与类包与类flash 包是包是 Flash CS 和和 Flex 共用的包,是共用的包,是 AS 3 基础包基础包fl 包是包是

20、 Flash CS 组件相关的包,组件相关的包,Flash CS 专有包。专有包。引用数据类型引用数据类型函数类型函数类型类类型类类型接口类型接口类型flash.utils包中的部分函数包中的部分函数fl与与flash部分包部分包Object,MovieClip,SimpleButton,ErrorTextField,Date,ArrayFunction,XMLAS3的顶级类的顶级类v知识技能总结知识技能总结使用使用Stage类类vstage是是Stage 类的实例,常用属性:类的实例,常用属性:stage.frameRate;舞台帧速度;舞台帧速度stage.stageWidth,stage

21、.stageHeightstage.displayState;(“fullScreen”,”normal)”示例示例(isFull.fla):):编程实现用单击方式改变全屏或退出全屏编程实现用单击方式改变全屏或退出全屏交互程序交互程序v知识技能总结知识技能总结stage.displayState;(“fullScreen”,”normal)”示例示例(isFull.fla):):编程实现用单击方式改变全屏或退出全屏编程实现用单击方式改变全屏或退出全屏交互程序交互程序var isFull:Boolean=false;stage.addEventListener(click,fullscreen)

22、;function fullscreen(me:Event)isFull=!isFull;if(isFull)stage.displayState=fullScreen;elsestage.displayState=normal;v知识技能总结知识技能总结使用使用MoiveClip类类v用程序用程序(编程绘制填充圆形(编程绘制填充圆形.fla)实现在舞台上建立一个圆形实现在舞台上建立一个圆形r=15影片剪辑对象影片剪辑对象,填充为红色填充为红色,边线粗细,黑色。边线粗细,黑色。v用用MoiveClip类的类的graphics属性绘制圆形属性绘制圆形v显示对象用显示对象用addChild()添加

23、到显示列表中添加到显示列表中var c_mc:MovieClip=new MovieClip();c_mc.graphics.lineStyle(2,0 x000000);c_mc.graphics.beginFill(0 xff0000);c_mc.graphics.drawCircle(250,175,15);addChild(c_mc);2-2 演员的动作表演演员的动作表演v项目:持续旋转与变换颜色效果项目:持续旋转与变换颜色效果绵羊角色会随着鼠标位置来改变自身的旋转角度绵羊角色会随着鼠标位置来改变自身的旋转角度大小,旋转速度与方向大小,旋转速度与方向其背后光束效果,会随机变换颜色其背后

24、光束效果,会随机变换颜色vrotation&chgcolor素材素材.flav准备素材准备素材背景底图背景底图绵羊影片剪辑绵羊影片剪辑Sheep_mc 光束光束color_mcAS图层图层v实现思路实现思路设定设定Sheep_mc的最大转速的最大转速设置侦听器函数,设置侦听器函数,enterFrame事件编写监听函数事件编写监听函数gotRot,使,使Sheep_mc的的_rotation属性会根据当前鼠标的位置进行旋转属性会根据当前鼠标的位置进行旋转对象的旋转属性对象的旋转属性v指定影片剪辑的旋转角度属性值在指定影片剪辑的旋转角度属性值在0180顺时针方向顺时针方向1800逆时针方向超出范围

25、时,数值加上或减去逆时针方向超出范围时,数值加上或减去360的倍数即的倍数即可如:可如:mc.rotation=450等于等于mc.rotation=90实现光束颜色的随机改变实现光束颜色的随机改变v程序代码程序代码var maxSpeed:int=60;this.addEventListener(enterFrame,goRot);function goRot(me:Event)var difX=this.mouseX;var difY=this.mouseY;var num=difX+difY;num=Math.round(num/10);var speed=maxSpeed-num;sh

26、eep_mc.rotation+=speed;/0-180顺时针,-180-0逆时针;/实现背景颜色1秒的变换var color_array:Array=0 xff0000,0 x00ff00,0 xffff00,0 x0000ff;var my_color:ColorTransform=new ColorTransform();var i:Number;i=Math.floor(Math.random()*color_array.length);my_color.color=color_arrayi;color_mc.transform.colorTransform=my_color;v知识

27、技能总结知识技能总结顶级类顶级类v数学数学MathMath类的属性称为类属性,通过类名来访问。常用属性和方法:类的属性称为类属性,通过类名来访问。常用属性和方法:Math.PI,Math.sin(),Math.cos(),Math.random(),Math.floor(),Math.round()Math.sin()cos()是以弧度为单位,要将角度转为弧度:是以弧度为单位,要将角度转为弧度:angle*Math.PI/180=angle*0.0174533;随机方法随机方法Math.random().返回返回 Math.random()小数小数.如果得到如果得到AB之间的随机数,用下面代码

28、表示:之间的随机数,用下面代码表示:A+(B-A)*Math.random();如:如:Math.random()*10+10;返回大于等于,小于的小数返回大于等于,小于的小数v知识技能总结知识技能总结顶级类顶级类v数学数学Math.random()*取整方法取整方法.将小数赋值给将小数赋值给int或或uint类型的变量时,小数部分被忽略类型的变量时,小数部分被忽略var t:uint=Math.random()*11+10;/产生产生10到到20间的整数,包括间的整数,包括10、20Var t:int=Math.random()*21-10;返回的数据范围是多少?返回的数据范围是多少?2.M

29、ath.floor(3.59/-3.59);返回小于等于最接近指定值的整返回小于等于最接近指定值的整数值数值3/-43.Math.round(3.59/-3.5);返回最接近指定值的整数值(较返回最接近指定值的整数值(较大)大)4/-3v知识技能总结知识技能总结取随机整数时,应使用取随机整数时,应使用floor()方法而不是()方法而不是round()方法进行随机取整()方法进行随机取整例:例:for(var i:int=0;i100;i+)trace(Math.round(Math.random()*21);/返回包括在内的整数;返回包括在内的整数;当当random()返回的小数大于()返回

30、的小数大于20并小于并小于20.5时,时,round()()取整为取整为20;大于;大于20.5取整为取整为21;所以的概率少了一半;所以的概率少了一半;trace(Math.floor(Math.random()*21);/返回不包括在内的整数且随机数准确返回不包括在内的整数且随机数准确参见书参见书P60实例实例v知识技能总结知识技能总结顶级类顶级类v数组数组Array:将一系列数据有序地组织起来,进行批量:将一系列数据有序地组织起来,进行批量的处理和操作。的处理和操作。var employee:Array=“Adobe”,”Facebook”,”Apple”或一系列颜色值或一系列颜色值va

31、r employee:Array=new Array();employee0=“Adobe”;employee1=“Facebook”;employee.length数组长度;数组下标从数组长度;数组下标从v知识技能总结知识技能总结调整颜色显示对象步骤调整颜色显示对象步骤*调整调整Color属性属性vColorTransform类定义在类定义在flash.geom包中包中(flash.geom.ColorTransform).其方法可以调整显示对象的颜其方法可以调整显示对象的颜色每个显示对象都有色每个显示对象都有transform,ColorTransform属性属性1.先构造函数先构造函数n

32、ew ColorTransform()var myColor:ColorTransform=new ColorTransform();2.调整调整color属性设置颜色值属性设置颜色值myColor.color=0 xffffff;3.将将ColorTransform实例实例myColor重新分配给对象(重新分配给对象(transform.colorTransform)myObject.transform.colorTransform=myColor;注意:颜色不会应用于注意:颜色不会应用于MC的背景的背景v知识技能总结知识技能总结调整颜色显示对象步骤调整颜色显示对象步骤*调整乘数属性和偏移属

33、性调整乘数属性和偏移属性(依鼠标改变颜色(依鼠标改变颜色.fla)v显示对象有多种颜色,不希望完全重新调整对象的颜色,而根据现显示对象有多种颜色,不希望完全重新调整对象的颜色,而根据现有颜色来调整显示对象的颜色。有颜色来调整显示对象的颜色。ColorTransform有一组乘数属性有一组乘数属性和偏移属性进行此类调整。和偏移属性进行此类调整。1.乘数属性乘数属性redMultiplier、greenMultiplier、blueMultiplier、alphaMultiplier可可以将颜色调整或颜色转换应用于所有四种通道:红色、绿色、蓝色以将颜色调整或颜色转换应用于所有四种通道:红色、绿色、

34、蓝色和和 Alpha 透明度透明度(在范围取值,默认正常在范围取值,默认正常)。增强或削弱显示对象。增强或削弱显示对象上的某些颜色。上的某些颜色。2.偏移属性偏移属性redOffset、greenOffset、blueOffset、alphaOffset 额外增加对额外增加对象上某种颜色值。象上某种颜色值。颜色属性面板-高级画面颜色动态改变画面颜色动态改变bg_mc.addEventListener(MouseEvent.MOUSE_MOVE,rg);function rg(e:MouseEvent)var ct:ColorTransform=new ColorTransform();/根据鼠

35、标位置设置红色和绿色乘数,鼠标根据鼠标位置设置红色和绿色乘数,鼠标 x 轴位置控制红色;轴位置控制红色;y 轴位置控制绿色轴位置控制绿色/鼠标从图像左侧到右侧,红色值的范围从鼠标从图像左侧到右侧,红色值的范围从 0%到到 100%(从无红色到正常图像红(从无红色到正常图像红色)色)/鼠标从图像上方到下方,绿色值的范围从鼠标从图像上方到下方,绿色值的范围从 0%到到 100%(从无绿色到正常图像绿(从无绿色到正常图像绿色)色)ct.redMultiplier=this.mouseX/bg_mc.width;ct.greenMultiplier=this.mouseY/bg_mc.height;b

36、g_mc.transform.colorTransform=ct;v编程实现编程实现v.产生漫天雪花效果(复制雪花产生漫天雪花效果(复制雪花.fla,雪花飘起来,雪花飘起来.fla)v.子弹沿螺旋线运动效果子弹沿螺旋线运动效果(沿螺旋线运动的子弹(沿螺旋线运动的子弹sin().fla)漫天雪花的编程思想漫天雪花的编程思想v制作雪花影片剪辑元件,在库中设置属性类名:制作雪花影片剪辑元件,在库中设置属性类名:snowv产生一个显示对象容器,以便将雪花实例放在该容器中产生一个显示对象容器,以便将雪花实例放在该容器中v利用构造函数利用构造函数new产生朵雪花实例,并修改他们的产生朵雪花实例,并修改他们

37、的XY大小等属性,充满舞台大小等属性,充满舞台让雪花飘让雪花飘v使雪花飘起来,利用帧频事件触发,使雪花飘起来,利用帧频事件触发,定义侦听器定义侦听器编写事件触发函数,不断改变雪花的编写事件触发函数,不断改变雪花的Y属性属性for(var i:uint=1;i480)e.target.y=0;作业:定制作业:定制T恤颜色恤颜色v编程实现以下功能编程实现以下功能据用户对颜色的需求,决定据用户对颜色的需求,决定T恤的颜色恤的颜色要求可选颜色与书中的颜色至少有一半以上不同要求可选颜色与书中的颜色至少有一半以上不同v实现步骤实现步骤建立个不同的颜色按钮,命名建立个不同的颜色按钮,命名a_btn,b_bt

38、n用属性面板用属性面板调整色调并记录色调值调整色调并记录色调值建立衣架和阴影的建立衣架和阴影的建立衣服影片剪辑建立衣服影片剪辑cloth_mc,色调为红,色调为红.编程程序编程程序v定义颜色数组,存放个按钮的颜色值定义颜色数组,存放个按钮的颜色值var color_array=0 xff0000,0 x00ff00,0 x0000ff,v为个颜色按钮注册事件侦听器为个颜色按钮注册事件侦听器,事件为事件为“click”a_btnaddEventListener(“click”,clothColor);v事件处理函数事件处理函数据用户单击的颜色,为衣服定制颜色据用户单击的颜色,为衣服定制颜色建立建

39、立ColorTransform的实例对象的实例对象var myColor:ColorTransform=new ColorTransform();用分支语句判断用分支语句判断myColor.Color的颜色值的颜色值将颜色值应用在衣服上将颜色值应用在衣服上cloth_mcTransformColorTransformmyColor;v制作震动效果制作震动效果(发素材(发素材shake素材素材.fla)技术要点:技术要点:将震动影子对象置于顶层,透明度属性,位置不重将震动影子对象置于顶层,透明度属性,位置不重叠叠使该对象与原对象位置随机进行微小动态变化使该对象与原对象位置随机进行微小动态变化建立

40、帧频事件侦听器建立帧频事件侦听器v使震动影子对象的坐标位置随机微小变化使震动影子对象的坐标位置随机微小变化可调速的滑动广告牌可调速的滑动广告牌v利用鼠标指针的利用鼠标指针的X轴位置,决定广告牌的滑动轴位置,决定广告牌的滑动方向(向左或向右)与滑动速度方向(向左或向右)与滑动速度v案例制作要点案例制作要点(广告素材广告素材.fla)可视元素广告牌影片剪辑可视元素广告牌影片剪辑(六部影片画面,组合成组六部影片画面,组合成组)广告牌影片剪辑的移动速度由当前光标的位置确广告牌影片剪辑的移动速度由当前光标的位置确定定v(250-this.mouseX)/10;以舞台中心位置为中心;以舞台中心位置为中心广

41、告牌内容的无缝对接技术广告牌内容的无缝对接技术v左边左边X850v4369游戏公司委托游戏公司委托XX小组开发一款网页游戏小组开发一款网页游戏水果丰收水果丰收,尺寸大小,尺寸大小600*400,帧频帧频24fps.水果有西瓜、桔子、火龙果、草莓(可以创新)水果有西瓜、桔子、火龙果、草莓(可以创新)游戏开始后,用鼠标移动舞台的小女孩(可以创游戏开始后,用鼠标移动舞台的小女孩(可以创新)接住从天而降的水果。水果的速度一轮比一新)接住从天而降的水果。水果的速度一轮比一轮快,轮快,4种水果的出现要随机。种水果的出现要随机。接住西瓜接住西瓜6分,桔子分,桔子2分,草莓分,草莓1分,火龙果分,火龙果-3分

42、。分。游戏界面显示总分,时间游戏界面显示总分,时间100秒倒计时,时间到显秒倒计时,时间到显示重玩一次,总分清零。示重玩一次,总分清零。有声效加分有声效加分(背景音乐、水果收获音效)背景音乐、水果收获音效)项目三项目三水果丰收水果丰收Flash游戏制作游戏制作v网页游戏网页游戏水果丰收水果丰收项目实施要求项目实施要求分组进行,分组进行,6人一组,自由组合。要求:男女搭配,人一组,自由组合。要求:男女搭配,特长搭配。特长搭配。各自为小组起名,并设计小组各自为小组起名,并设计小组LOGO。选定项目组长(确保每位成员参与,明确分工);选定项目组长(确保每位成员参与,明确分工);确定演讲汇报员(制作确

43、定演讲汇报员(制作PPT,汇报本组成果);,汇报本组成果);确定记录员,记录小组会议讨论情况。确定记录员,记录小组会议讨论情况。上交时间:上交时间:4.12各小组上交作品,演示答辨,小组各小组上交作品,演示答辨,小组间评价。间评价。项目三水果丰收项目三水果丰收Flash游戏制作游戏制作游戏实现思路游戏实现思路v制作计分器影片剪辑制作计分器影片剪辑注册帧频事件侦听器,事件函数为文本框设置分注册帧频事件侦听器,事件函数为文本框设置分数值数值parent.scorev制作计时器影片剪辑制作计时器影片剪辑初值初值hastime=100秒,开始时间值秒,开始时间值startime注册帧频事件侦听器注册帧

44、频事件侦听器,事件函数处理倒计时事件函数处理倒计时hastime-Math.round(nowtime-startime)/1000)倒计时为,移除该侦听器倒计时为,移除该侦听器游戏转到结束场景;游戏转到结束场景;游戏实现思路游戏实现思路v制作影片剪辑水果对象类制作影片剪辑水果对象类种水果各一帧种水果各一帧设置水果的初始位置在舞台上边缘之外设置水果的初始位置在舞台上边缘之外this.x=Math.random()*500+50;(间)(间)this.y=-40;下落速度下落速度speed=5+Math.random()*30;(间)(间)水果显示的各类和对应的分数水果显示的各类和对应的分数西瓜

45、、桔子、草莓、火龙果出现的可能性西瓜、桔子、草莓、火龙果出现的可能性10%,20%,30%,40%.0.00.10.30.61.0西瓜西瓜桔子桔子草莓草莓火龙果火龙果k=Math.random();if(k0.1)gotoAndStop(1);thisScore=root.S1;else if(k0.3)gotoAndStop(2);thisScore=root.S2;else if(k0.6)gotoAndStop(3);thisScore=root.S3;else gotoAndStop(4);thisScore=root.S4;注册帧频事件侦听器;注册帧频事件侦听器;事件函数:事件函数:

46、设置下落速度设置下落速度判断水果超出边界时,移除侦判断水果超出边界时,移除侦听器和水果对象;听器和水果对象;否则,判断水果是否与小女孩否则,判断水果是否与小女孩手中的盘接触,是,加分;手中的盘接触,是,加分;移除侦听和水果;移除侦听和水果;游戏实现思路游戏实现思路v规划主场景规划主场景第一帧内容,游戏标题,水果对应分数,开始按第一帧内容,游戏标题,水果对应分数,开始按钮钮第二帧内容,计时器、计分器、小女孩、分数显第二帧内容,计时器、计分器、小女孩、分数显示,隐藏鼠标示,隐藏鼠标.startDrag(t/f,拖曳区域拖曳区域);拖曳区域为矩形对象,指定拖曳影;拖曳区域为矩形对象,指定拖曳影片剪辑

47、时的限制范围片剪辑时的限制范围第三帧内容,不停地复制水果,形成大量水果下第三帧内容,不停地复制水果,形成大量水果下落效果落效果第四帧内容,最后统计最终得分,显示再玩一次。第四帧内容,最后统计最终得分,显示再玩一次。碰撞检测碰撞检测v形状与形状碰撞形状与形状碰撞hitTestObject();如果个对象在任意一点上重叠或交叉,该方法如果个对象在任意一点上重叠或交叉,该方法返回返回true;否则返回否则返回false。注意:注意:1.碰撞是以显示对象的外接矩形框是否重叠作为评判碰撞是以显示对象的外接矩形框是否重叠作为评判的依据。的依据。2.剪辑对象运行时有旋转时,采用的是大虚线框作为冲突剪辑对象运

48、行时有旋转时,采用的是大虚线框作为冲突检测的矩形区域检测的矩形区域碰撞检测碰撞检测v点与形状碰撞点与形状碰撞显示对象显示对象hitTestPoint(X坐标,坐标,Y坐标,坐标,判定判定区域区域)检测某个点是否与对象碰撞检测某个点是否与对象碰撞判定区域布尔值。判定区域布尔值。true以影片剪辑实际形状以影片剪辑实际形状,为评估区域;为评估区域;默认值默认值 false以影片剪辑矩形形状,范围框,为评估区以影片剪辑矩形形状,范围框,为评估区域;域;坐标点坐标点判定区域判定区域=true判定区域判定区域=falseAfalsetrueBtruetrueCfalsefalsev烛光点燃烛光点燃注册个

49、侦听函数MOUSE_DOWN、MOUSE_UP使火柴拖动、停止使火柴拖动、停止ENTER_FRAME使蜡烛点燃,使蜡烛点燃,火柴熄灭火柴熄灭stage.addEventListener(MouseEvent.MOUSE_DOWN,hcdrag);function hcdrag(e:MouseEvent)if(hc_mc.hitTestPoint(mouseX,mouseY)hc_mc.startDrag(true);stage.addEventListener(MouseEvent.MOUSE_UP,hcstop);function hcstop(e:MouseEvent)hc_mc.stop

50、Drag();stage.addEventListener(Event.ENTER_FRAME,hit);function hit(e:Event)if(hc_mc.hitTestObject(hy_mc)hy_mc.gotoAndPlay(2);hc_mc.hg.alpha=0;设置对象拖动的有效范围设置对象拖动的有效范围案例:主角拖动与左右走向案例:主角拖动与左右走向var rect:Rectangle=new Rectangle(50,380,420,0);/拖动范围拖动范围mc.startDrag(true,rect);var TempX:Number;this.addEventLis

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第2单元动画演出内容的编程设计课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|