基于Flash as3的“连连看”游戏型课件制作实例

合集下载

Flash AS3.0动画程序设计案例教程课件第7章

Flash AS3.0动画程序设计案例教程课件第7章

7.4 图形绘制API
绘图API 是ActionScript中的一项内置功能的名称,可以使用该功能来创建矢量图 形如直线、曲线、形状、填充和渐变等,并使用 ActionScript 在屏幕上显示它们。 (1) Graphics 类
每个 Shape、Sprite 和 MovieClip 对象都具有一个 graphics 属性,它是 Graphics 类的一个实例。Graphics 类 包含用于绘制线条、填充和形状的属性和方法。
(5) 如果要创建的类与 Flash 库中的影片剪辑元件关联,请选择其中一个 DisplayObjectContainer 子类作为该类的基类: – 如果关联的影片剪辑元件在多个帧上有内容,请选择 MovieClip。 – 如果关联的影片剪辑元件仅在第一帧上有内容,请选择 Sprite。
7.2.6 显示对象的舞台表现
请根据使用目的选择 DisplayObject 或 InteractiveObject 两个子类中的一个: – 用于显示位图图像的 Bitmap。 – 用于添加文本的 TextField。 – 用于显示视频的 Video。 – 用于绘制屏幕内容的“画布”的 Shape。 – 用于 Flash 具体创作项的 MorphShape、StaticText 或 SimpleButton。
如果从显示列表中删除某个 DisplayObjectContainer 对象,或者以其它某种方式移动该对象或对其进行变形 处理,则会同时删除、移动 DisplayObjectContainer 中的每个显示对象或对其进行变形处理。
显示对象容器本身就是一种显示对象,它可以添加到其它显示对象容器中。要使某一显示对象出现在显示列 表中,必须将该显示对象添加到显示列表上的显示对象容器中。使用容器对象的 addChild() 方法或 addChildAt() 方 法可执行此操作。例如,如果下面的代码没有最后一行,将不会显示 myTextField 对象:

FLASH制作连线题详解

FLASH制作连线题详解

FLASH制作连线题详解-以AS3为例时间:2013-09-17 11:20来源:电脑教程学习网编辑:xiaolian连线题就是一种常见的测试题型,利用FLASH中的画线功能可以很容易实现“连线”的过程,但对连线结果的判断却有一定的难度,在这里为大家介绍两种实现连线结果的判断方法。

连线题设计方法:1,利用graphics实现画线的过程,通常操作过程为鼠标按下开始画线,鼠标移动就是画线的过程,鼠标弹起结束画线:addEventListener(MouseEvent、MOUSE_DOWN,mc1Down);function mc1Down(e:MouseEvent ):void{stage、addEventListener(MouseEvent、MOUSE_MOVE ,moveFun);stage、addEventListener(MouseEvent、MOUSE_UP ,upFun);}function moveFun(e:MouseEvent ):void{graphics、clear();graphics、lineStyle(3,0xff0000);graphics、moveTo(xx,yy);graphics、lineTo(mouseX,mouseY);}function upFun(e:MouseEvent ):void{stage、removeEventListener(MouseEvent、MOUSE_MOVE ,moveFun);stage、removeEventListener(MouseEvent、MOUSE_UP ,upFun);}2,实现连线结果判断:通过单击指定按钮判断。

因为如果依据鼠标移动位置来判断连线对象,难度比较大。

通常可以在接近连线目标区时单击指定的对象(如按钮,通过这个单击事件实现答案判断与信息反馈),下面瞧示例:这个连线的过程在于单击题干中的按钮确定连线的起点,移动鼠标显示连线的方向与过程,单击答案中的按钮确定目标就是否正确。

Flash CS3多媒体课件制作

Flash CS3多媒体课件制作

实例:简单Flash动画制作过程
确定剧本内容—创建素材—利用时间轴安排素材 —-添加效果—增加交互性—测试并发布影片 1.新建影片文档和设置文档属性
2.导入位图和设置时间轴特效 3.保存和测试影片
4 .导出影片
Flash绘图与编辑图形
Flash动画设计的三大基本功能:绘图和编辑图形、
2.1.6 椭圆工具和基本椭圆工具
Flash提供了两种绘制椭圆的工具,椭圆工具和基
本椭圆工具。
1.椭圆工具如下:
2.1.6 椭圆工具和基本椭圆工具
2.基本椭圆工具
使用基本椭圆工具,可以绘制图元椭圆。
2.1.7 多角星形工具
使用多角星形工具,可以创建多边形或星形。
2.1.8 刷子工具
2.1.5 矩形工具和基本矩形工具
Flash提供了两种绘制矩形的工具,即矩形工具和基本矩形工
具。
1.矩形工具
2.1.5 矩形工具和基本矩形工具
2.基本矩形工具
使用基本矩形工具,可以绘制图元矩形。绘制的图
像将被自动转换成绘制对象组合,在完成后还可以使用“属 性”面板进行修改,因此此工具可以看成是矩形工具的增强。
Flash CS3多媒体课件制作
计算机技术的发展及普及使多媒体课件作
为如今教学的主体,逐步代替了传统的教 学形式。童年中那句“黑板上老师的粉笔, 还在叽叽喳喳写个不停”已成为往事。
多媒体课件特点:图文并茂,声色俱全, 动静相宜。 多媒体:文本、图形、图像、声音、动画、 视频
多媒体课件常用工具
2.1.4 钢笔工具
2.绘制直线
使用钢笔工具可以绘制的最简单路径是直线,方
法是通过单击钢笔工具创建直线的两个锚点。继 续单击可创建由转角点连接的直线段组成的路径。 使用钢笔工具绘制直线的具体步骤如下:

用Flash做一个连连看

用Flash做一个连连看

用Flash做一个连连看作者:来源:《电脑爱好者》2010年第10期果果:上期我们对比了Flash ActionScript(简称AS)的几个版本,还了解了要实现一个简单的Flash游戏,需要掌握什么基础知识。

那么本期,咱们就来真正地用AS3做一个连连看游戏!这个风靡世界的小游戏,属于入门级的,做起来并不复杂哦!思路和算法我们要做的事情首先就是分析二维数组,并控制元件的显示(见下图)。

我们希望实现的是,点击两个相同的图片,按照某些规则,判断这两个图是否可以被消除掉,直到画面中图片都被消除掉即可过关。

可以把这张图理解为一个二维数组,没有方块图片的地方属性是可通行,有图片的地方属性不可通行,且记录代表不同图片的数字,以便检查是否匹配。

如左图所示,判断两张画面相同的图片是否可以消失的规则是:用一条线链接两个图片方块,线的拐点小于等于2个。

而这条连接线经过的方块区域(二维数组中,线段经过的区域)必须是可通行的,不可以有其他的图片方块。

两张图片排列规则有:上下相邻、左右相邻、在同一列但不同行、在同一行但不同列、不同行不同列。

我们在程序中,就要一步步按规则判断是否可以把图片消除掉。

重点代码解读这个程序具体实现的代码和源文件详见/article/page1.asp,下载后可以在Flash中修改和调试。

这是用AS3写的程序,实现同样的效果方法有很多种。

核心部分是chack(),判断两个图片是否可以被消除,分3部分:①检查没有节点的情况(两张图在同一行或者同一列、相邻或者不相邻两种情况)②检查一个节点的情况(从后一个被点击的图片出发,检查4个方向)③检查两个节点的情况(从后一个被点击的图片出发,检查4个方向)由于篇幅所限,检查一个节点的左、右方向,还有两个节点情况下的代码请参见源文件/article/page1.asp。

除chack()外,checkhang()和checklei()也比较重要,用来检查一个方块与另一个之间是否可通行,大家可以仔细研究一下。

AS3flash基础教程共46页文档

AS3flash基础教程共46页文档

❖ 4、基础数据类型
❖ 所有的基元数据类型 ❖ 两种复杂数据类型
Boolean,int,Number,unit,String Array,Object
❖ 布尔值:Boolean ❖ 表示真假 ❖ 两个值:true,false ❖ 声明一个布尔型变量时忘记赋值,默认值为false
20.04.2020
Flash 动画设计与制作
如果要赋值,值的数据类型必须和变量的数据类型一致
20.04.2020
Flash 动画设计与制作
ActionScript 3语言基本元素
❖ 3、使用const声明常量
❖ AS3中新增的关键字 ❖ 语法
const foo:int = 100
20.04.2020
Flash 动画设计与制作
ActionScript 3语言基本元素
❖ 2、变量的声明和使用
❖ 变量必须先声明再使用
❖ 声明变量的语法
var 变量名:数据类型; var 变量名:数据类型 = 值
❖ 变量命名规则
❖ i尽量使用有含义的英文单词作为变量 iv名=a3r j = “String Value”
❖ 变量名采用骆驼式命名法
❖ 尽量避免变量名中出现数字编号
var i:int i=100 var k:int = 100,i:int=200 var j:String = “String Value”
❖ Flash使用插件方式进行工作,用户只要安装一次插件,就 可以在浏览器中观看Flash动画。此外Flash支持多种格式图 片,支持声音,支持渐变色,支持A1pha透明、蒙扳等功能。
❖ Flash动画电影是一种“流”形式文件,动画是一边下载一 边播放的,几乎感觉不到文件下载过程下来。

Flash as3连线题制作类的设计、实现与应用

Flash as3连线题制作类的设计、实现与应用

|j 辫 | 鬣 | j l 一| ~ r ~ ’ l ~ | ~ l l l … 一 … l — l 一 | 鬟

1 豢 羲 嚣 l 嚣 l 嚣 毫 | 蔫 | 秀 l | 誊 毳 蘩 | 萋l l 萎嚣 | 蠢! 誊 萎 l 嚣 霉l 罨
可 能 的减 少 教 师 Ha s h连线 题课 件 的 大 量 重 复 劳 动 。 大体 思 路 是 制 作 连线 题 时 , 创 建 一 个 基 类 为 “ l i a n x i a n . a s ” ( 连 线 题 制 作 类 ) 的影 片 剪 辑元 件 ,使 用 者 在 其 中 自由绘 制 自 己喜 欢 的 图 形 作 为 连 线 按 钮 使 用 ,然 后 在 舞 台 上 根 据 问 题 创 建 多 个 实 例 , 只 需 对 应 的 连 线 两端 的实 例 名 一 致 即可 ,这 样 就 能 完 成 了连 线 题 的制 作 ,成绩 也要 自动 统 计 保 存 在 变 量 中 。
3 a s 3连 线 题 制 作 类 的应 用
连线麓 l l
l 、5 +9
的 十 字 )大 致 对 齐 。如 图 3 所示 。

l 3
l l
图 3 设 置 图形 的 位 置
2 、6 十7 3 、3 + 嚣 黼 4 、6 ÷ 6 l
返 回 主场 景 .将 库 中的 绘 制 好 的 “ 连 线 端 点 ” 影 片 剪辑 元 件 ,拖 动 到 舞 台 上 ,创 建 元 件 的实 例 ,并 将 其 大 小 调 整 合 适 ,
§ n } 。 。 “ t
2 F l a s h a s 3连 线 题 制 作 类 的设 计
连 线题 制作 类 的设 计 目的 是 要 将 连 线 题 的 全 部 功 能 由 一个

Flash_as3.0实例教程100例

Flash_as3.0实例教程100例

实例一利用缓动类实现图片滚动点击放大效果//缓动类不在flash包中在fl包中所以要先导入import fl.transitions.Tween;//导入缓动类import fl.transitions.TweenEvent;//导入缓动事件import fl.transitions.easing.Regular;//导入缓动效果中有规律的var arrTupian:Array=[];//存放图片的数组var tweenscaleX:Tween;//用来控制图片宽高的缓动类var tweenscaleY:Tween;var datu:MovieClip;for (var i:int=0; i<8; i++) {var xiaotu:MovieClip =new Pic();//这里Pic是库中一个存放图片的类文件addChild(xiaotu);xiaotu.gotoAndStop(i+1);xiaotu.width=120;xiaotu.height=100;xiaotu.x=xiaotu.width/2+i*(xiaotu.width+10);xiaotu.y=420;arrTupian.push(xiaotu);xiaotu.addEventListener(Event.ENTER_FRAME ,dongf);//为每个小球添加移动帧频函数}function dongf(e) {var mc:MovieClip=e.target;mc.x-=6;if (mc.x<0-(xiaotu.width/2+10)) {//如果该图片出了场景则放在最后一张图片的位置mc.x=xiaotu.width/2+7*(xiaotu.width+10);}mc.buttonMode=true;mc.addEventListener(MouseEvent.MOUSE_OVER ,overf);///鼠标移过时候停止移动mc.addEventListener(MouseEvent.MOUSE_OUT,outf);//}function overf(e) {for (i=0; i<arrTupian.length; i++) {//注意是点击一张图片应该让所有的图片都移除移动的侦听arrTupian[i].removeEventListener(Event.ENTER_FRAME ,dongf);arrTupian[i].removeEventListener(MouseEvent.MOUSE_OVER ,overf);//注意也要把移过函数移除,等下次再调用再添加防止下面的效果还没有达到又开始此函数}//此时大图出现datu=new Pic();datu.gotoAndStop(arrTupian.indexOf (e.target)+1);addChild(datu);datu.x=stage.stageWidth/2;datu.y=200;tweenscaleX=new Tween(datu,"scaleX",Regular.easeOut,1,3,0.5,true);//参数从1倍扩大到3倍tweenscaleY=new Tween(datu,"scaleY",Regular.easeOut,1,3,0.5,true);//参数分别是对象,属性,缓动类型,开始参数,结束参数,缓动事件,true表示为单位为妙false表示为帧}function outf(e) {e.target.removeEventListener(MouseEvent.MOUSE_OVER ,overf);e.target.removeEventListener(MouseEvent.MOUSE_OVER ,outf);tweenscaleX=new Tween(datu,"scaleX",Regular.easeOut,3,1,0.5,true);//开始和结束的参数反过来则实现了缩小的效果tweenscaleY=new Tween(datu,"scaleY",Regular.easeOut,3,1,0.5,true);//tweenScaleX=new Tween.yoyo ()或者用这个方法,表示实现原来缓动的相反过程//tweenScaleY=new Tween.yoyo ()tweenscaleX.addEventListener(TweenEvent.MOTION_FINISH,fishf);}function fishf(e) {removeChild(datu);datu=null;//注意从显示列表中清除后,//元件本身还有东西,因此还要把大图元件清空for (i=0; i<arrTupian.length; i++) {arrTupian[i].addEventListener(Event.ENTER_FRAME ,dongf);}实例二利用timer类实现图片的切换场景中有一个pic图片多帧元件,currnum和totalnum两个动态文本speed输入文本,一个msg动态文本var timer:Timer;speed.text="2"//播放的初始速度为1000毫秒btn.addEventListener(MouseEvent.CLICK ,f);function f(e) {msg.text=""timer=new Timer(1000*Number(speed.text),pic.totalFrames);//计时器运行的时间单位都是毫秒,因此输入的速度都是秒应该再乘以1000.//输入的文本都是字符串因此要转化成数字timer.start();timer.addEventListener(TimerEvent.TIMER ,timerf);timer.addEventListener (TimerEvent.TIMER_COMPLETE,comf)//添加一个播放完后的函数}function timerf(e) {pic.gotoAndStop(timer.currentCount);//图片播放的张数及为计时器运行的当前次数//例如运行一次既是第一张,两次则为第二张currnum.text=String(timer.currentCount);totalnum.text=String(timer.repeatCount);//计时器总共运行的次数}function comf(e){msg.text="图片已经播放完毕谢谢欣赏"//信息文本框的文本显示内容}var format:TextFormat=new TextFormat("Impact",15,0xff00ff,true);var txt:TextField=new TextField();addChildAt(txt,numChildren-1);txt.text="这里随便写些东西";txt.wordWrap=true;txt.setTextFormat(format);txt.width=txt.textWidth;txt.height=txt.textHeight;txt.x=10,txt.y=33;实例三点击小图看大图效果var targetArr:Array=[];var pointArr:Array=[];var picArr:Array=[];var index:int;var targetPoint=new Point(275,200);for (var i:int=0; i<20; i++) {var point:Point=new Point();var targetP:Point=new Point();//var C:Class=getDefinitionByName("cat"+i) as Class;/加载同路径文件夹中的名字为cat+i20张的图片var bmd:BitmapData=new C(0,0);//库中一个图片类文件var bmp:Bitmap=new Bitmap(bmd);var mc:MovieClip=new MovieClip();addChild(mc);mc.addChild(bmp);bmp.x=- bmp.width/2;bmp.y=- bmp.height/2;mc.scaleX=mc.scaleY=.4;i<6?(mc.x=2.5+mc.width/2+i*(mc.width+10),mc.y=mc.height/2):0;//上面六个图片的位置,坐标为图片的中心i>=6&&i<10?(mc.x=550-mc.width/2-2.5,mc.y=mc.height/2+mc.height+8+(i-6 )*(mc.height+8)):0;//右边四张图片的坐标i>=10&&i<16?(mc.x=550-mc.width/2-2.5-(i-10)*(mc.width+10),mc.y=400-mc. height/2):0;//下面六张图片坐标i>=16&&i<20?(mc.x=mc.width/2+2.5,mc.y=400-mc.height/2-mc.height-8-(i-16)*(mc.height+8)):0;//左边四张图片的坐标point.x=targetP.x=mc.x,point.y=targetP.y=mc.y;//记录此时每张图片的位置mc.mouseChildren=false;mc.n=i;//定义mc的私有属性记录每张图片的索引值picArr.push(mc);//targetArr.push(targetP);pointArr.push(point);}var timer:Timer=new Timer(1000);timer.start();timer.addEventListener(TimerEvent.TIMER,picMove);var k:int=0;function picMove(e) {//图片移动效果k++;for (var j:int=0; j<pointArr.length; j++) {targetArr[j].x=pointArr[(k+j)%pointArr.length].x;//当前点的坐标随着k的增加等于目标点坐标循环变换targetArr[j].y=pointArr[(k+j)%pointArr.length].y;if (picArr[j].x==275&&picArr[j].y==200) {//说明是中心位置的图片continue;} else {//说明是周围的图片picArr[j].x=pointArr[(k+j)%pointArr.length].x;//让每张图片的坐标循环变换picArr[j].y=pointArr[(k+j)%pointArr.length].y;}}}for (i=0; i<picArr.length; i++) {picArr[i].buttonMode=true;picArr[i].addEventListener(MouseEvent.CLICK,clickF);}function clickF(e) {setChildIndex(e.target,numChildren-2);//先把当前被点击的图片放在第二层objMove(e.target,targetPoint,1,1);if (picArr[index].x==275,picArr[index].y==200) {objMove(picArr[index],targetArr[index],.15,.15);}index=e.target.n;}functionobjMove(displayObject:DisplayObject,targetObj:Point,targetScalex:Number,tar getScaley:Number) {///**/参数分别是当前对象,当前点,x方向的缩放值,y方向上的缩放值timer.stop();//先让计时器停止,即点击图片动画过程中让图片移动的事件停止displayObject.addEventListener(Event.ENTER_FRAME,frame);function frame(e) {for (var i:int=0; i<picArr.length; i++) {picArr[i].mouseEnabled=false;picArr[i].buttonMode=false;picArr[i].removeEventListener(MouseEvent.CLICK,clickF);//点击每张图片后马上先移除点击事件}e.target.x+=(targetObj.x-e.target.x)/5;//缓动公式实现缓动效果e.target.y+=(targetObj.y-e.target.y)/5;e.target.scaleX+=(targetScalex-e.target.scaleX)/5;e.target.scaleY+=(targetScaley-e.target.scaleY)/5;vardis:Number=Math.sqrt((targetObj.x-e.target.x)*(targetObj.x-e.target.x)+(target Obj.y-e.target.y)*(targetObj.y-e.target.y));if (Math.abs(dis)<1) {//目标点和当前点的距离e.target.x=targetObj.x;e.target.y=targetObj.y;displayObject.removeEventListener(Event.ENTER_FRAME,frame);//图片达到目标点后移除该帧频事件trace("ok");for (i=0; i<picArr.length; i++) {//然后给每张图片再重新添加点击事件picArr[i].addEventListener(MouseEvent.CLICK,clickF);picArr[i].buttonMode=true;picArr[i].mouseEnabled=true;}timer.start();//计时器开始运行,即周围图片继续移动}}}var sp:Sprite=new Sprite();//画相框addChild(sp);sp.x=275;sp.y=200;sp.graphics.lineStyle(15,0xb66700);sp.graphics.drawRect(-174,-124,348,248);sp.graphics.lineStyle(2,0xa95401);sp.graphics.drawRoundRect(-177,-127,354,254,10,10);sp.graphics.lineStyle(3,0xa95401);sp.graphics.drawRoundRect(-173,-123,346,246,10,10);sp.graphics.lineStyle(1.5,0xa95401);sp.graphics.moveTo(-178,-128);sp.graphics.lineTo(-168,-118);sp.graphics.moveTo(178,-128);sp.graphics.lineTo(168,-118);sp.graphics.moveTo(178,128);sp.graphics.lineTo(168,118);sp.graphics.moveTo(-178,128);sp.graphics.lineTo(-168,118);sp.filters=[new BevelFilter(3,45,0xff9900,1,0x,1,5,5,1,3),new DropShadowFilter(4,45,0,1,5,5,.5,3)];//=======var format:TextFormat=new TextFormat("Impact",15,0xff00ff,true); var txt:TextField=new TextField();addChildAt(txt,numChildren-1);txt.text="这里随便写些东西";txt.wordWrap=true;txt.setTextFormat(format);txt.width=txt.textWidth;txt.height=txt.textHeight;txt.x=10,txt.y=33;实例四条形遮罩const W:Number=stage.stageWidth;const H:Number=stage.stageHeight;var picSpr:Sprite=addChild(new Sprite()) as Sprite;//用来装矩形条的容器var pic1:MovieClip = picSpr.addChild(new Pic()) as MovieClip;//实例化两个图集var pic2:MovieClip = picSpr.addChild(new Pic()) as MovieClip;var maskSpr:Sprite=picSpr.addChild(new Sprite()) as Sprite;pic2.gotoAndStop(3);//因为遮罩另一个图集所以先把另一个跳转到第二帧pic2.mask=maskSpr;//矩形条容器遮罩图集二//=====画矩形条函数function Rect(w:Number,h:Number):Sprite {var rect:Sprite = maskSpr.addChild(new Sprite()) as Sprite;rect.graphics.beginFill(0);rect.graphics.drawRect(0,0,w,h);rect.graphics.endFill();return rect;}var num:uint=80;//矩形条的总条数var rw:Number=W/num;//竖条的宽度var rh:Number=H/num;//横条的宽度var n:uint=0;//用来控制矩形的条数变化var bl:Boolean=true;//用来控制矩形条的偶数情况和奇数情况var a:uint=4*Math.random();//矩形条的从四种不同方向出现var timerA:Timer=new Timer(40,80);//控制每一个矩形条出现的时间,共执行八十次var timerB:Timer=new Timer(3000,1);//用来控制每一个效果完成后间隔的时间timerA.start();timerA.addEventListener(TimerEvent.TIMER,ttA);function ttA(evt:TimerEvent):void {var rectH:Sprite=Rect(rw,H);//实例化竖条var rectW:Sprite=Rect(W,rh);//实例化横条switch (a) {case 0 :if (bl==true) {//当为真时,出现奇数条第一种效果从左上角出现rectH.x=2*n*rw;//横坐标以竖条的宽度2倍增加即每隔一个宽度增加一个rectW.y=2*n*rh;//同上2*n==num-2?[n=0,bl=false]:0;//当n增加到最大值时,变为逆向出现偶竖条}else{rectH.x=W-(2*n-1)*rw;rectW.y=H-(2*n-1)*rh;}break;case 1 :if (bl==true) {//第二种效果从右下角出现rectH.x=W-(2*n+1)*rw;//rectW.y=H-(2*n+1)*rh;2*n==num-2?[n=0,bl=false]:0;} else {rectH.x=(2*n-1)*rw;rectW.y=(2*n-1)*rh;}break;case 2 :if (bl==true) {//第三种效果从左下角出现rectH.x=2*n*rw;rectW.y=H-(2*n+1)*rh;2*n==num-2?[n=0,bl=false]:0;} else {rectH.x=W-(2*n-1)*rw;rectW.y=2*(n-1)*rh;}break;default :if (bl==true) {//第四种效果从右上角出现rectH.x=W-(2*n+1)*rw;rectW.y=2*n*rh;2*n==num-2?[n=0,bl=false]:0;} else {rectH.x=2*(n-1)*rw;rectW.y=H-(2*n-1)*rh;}}n++;if (timerA.currentCount==timerA.repeatCount) {//如果当前执行次数等于总次数说明已经完成了实例化的80条矩形条for (var i:uint=maskSpr.numChildren; i>0; i--) {//就删除所有的矩形条maskSpr.removeChildAt(0);}pic1.currentFrame==pic1.totalFrames?pic1.gotoAndStop(1):pic1.nextFrame();//图片集播放到末尾循环从头开始pic2.currentFrame==pic2.totalFrames?pic2.gotoAndStop(1):pic2.nextFrame(); timerB.start();//添加第二个时间侦听器间隔时间为3秒}}timerB.addEventListener(TimerEvent.TIMER,ttB);function ttB(evt:TimerEvent):void {a=4*Math.random();n=0;bl=true;timerA.reset();timerA.start();}var sound:Sound=new Sound(newURLRequest("/yinle/%D4%C6%C9%CF%C7%E0%C9%BD. mp3"));var soundChannel:SoundChannel=new SoundChannel();var bool:Boolean=true;btn.addEventListener(MouseEvent.CLICK,ck);function ck(evt:MouseEvent):void {if (bool==true) {timerA.start();soundChannel=sound.play();btn.gotoAndStop(2);} else {for (var i:uint=maskSpr.numChildren; i>0; i--) {maskSpr.removeChildAt(0);}n=0;bl=true;a=4*Math.random();timerA.reset();timerA.stop();timerB.stop();soundChannel.stop();btn.gotoAndStop(1);}bool=! bool;}addChildAt(btn,numChildren-1);addChildAt(bt,numChildren-1)实例五3d旋转效果var num:Number=25;//照片的张数var quanshu:int=2;//螺旋的圈数var r:Number=300;//螺旋的半径var ang:Number =(Math.PI *2*quanshu)/num;//每张图片的角度,因为总共两圈所以总共的角度就360*2再除以总共张数var con:Sprite;//图片容器var arr:Array =new Array();//数组用来排序root.transform.perspectiveProjection.fieldOfView=60;//场景时间轴的视角设置为60root.transform.perspectiveProjection.projectionCenter=new Point(275,350); //主场景的消失点为舞台中心con=new Sprite();addChild(con);con.x=0;con.y=0;con.z=400;for (var i=0; i<num; i++) {var mc:MovieClip =new photo();con.addChild(mc);mc.x=r*Math.cos(i*ang);mc.z=r*Math.sin(i*ang);mc.rotationY=- i*ang*180/Math.PI+90;//通过旋转达到每张图片都面向y轴mc.y=i*30-100;//arr.push(mc);}addEventListener(Event.ENTER_FRAME ,f);function f(e) {con.rotationY+=2;for (var j=0; j<num; j++) {arr.push({mcc:con.getChildAt(j),Z:con.getChildAt(j).transform.getRelativeMatrix 3D(root).position.z});}for (var i:int; i<num; i++) {arr.sortOn("Z",18);//z坐标排序con.addChildAt(arr[i].mcc,i);}}实例六简单的点小图出大图效果for (var i:int=0; i<3; i++) {//把九张图片按照3×3格式排列for (var j:int=0; j<3; j++) {var mc:Mc=new Mc();//添加库中图片类文件mc.gotoAndStop(i+1+j*3);mc.width=mc.oldWidth=550/3;//设置宽为场景宽550三分之一mc.height=mc.oldHeight=400/3; //设置高为场景高400三分之一mc.flag=false;//定义一个mc的布尔值初始值为假即小图片时候addChild(mc);mc.x=mc.oldx=i*mc.width;//设置每张图片的坐标mc.y=mc.oldy=j*mc.height;mc.addEventListener(MouseEvent.MOUSE_DOWN ,f);}}//给每张图片添加点击事件function f(e) {var mc=e.target;setChildIndex(mc,numChildren-1);mc.flag=!mc.flag;//布尔值取反值为真说明此时已经点击过变成大图if (mc.flag) {//如果为真mc.removeEventListener(Event.ENTER_FRAME ,loop2);//移除缩小事件mc.addEventListener(Event.ENTER_FRAME ,loop1);//添加扩大事件} else {//如果为假mc.removeEventListener(Event.ENTER_FRAME ,loop1);//移除扩大mc.addEventListener(Event.ENTER_FRAME ,loop2);}}//添加缩小function loop1(e) {//var mc=e.target;mc.x+=(0-mc.x)/5;//因为每张图片的注册点在左上角,所以目缓动目标位置(0,0)即把每张图片的左上角顶点移向场景左上角mc.y+=(0-mc.y)/5;mc.width+=(550-mc.width)/5;//并且同时宽高扩大缓动过程mc.height+=(400-mc.height)/5;}function loop2(e) {//var mc=e.target;mc.x+=(mc.oldx-mc.x)/5;//回到原始位置,mc.y+=(mc.oldy-mc.y)/5;mc.width+=(mc.oldWidth-mc.width)/5;//同时缩小到原来的大小mc.height+=(mc.oldHeight-mc.height)/5;}实例七利用缓动类实现图片切换效果import fl.transitions.Tween;//导入tween类import fl.transitions.easing.*;//导入缓动类var arr:Array=[];function loaderpic(scale:Number ,i:int ,b:Boolean=false ):MovieClip {var mc:MovieClip =new MovieClip();var loader:Loader =new Loader();var url:URLRequest=new URLRequest("C:/Documents andSettings/Administrator/桌面/新建文件夹/sinian"+i+".jpg");loader.load(url);loader.contentLoaderInfo.addEventListener(PLETE ,loadf);function loadf(e) {var temp:Loader=e.target.loader as Loader;temp.filters=[new BevelFilter(6,45,0xffffff,1,0,1,5,5,1,1,"inner",false)];//添加的斜角滤镜temp.scaleX=temp.scaleY=scale;mc.addChild(temp);b?(temp.x=-temp.width /2,temp.y=-temp.height /2):0;loader.contentLoaderInfo.removeEventListener(PLETE ,loadf);}return mc;}//加载八张大图for (var i:int=0; i<8; i++) {var bigpic:MovieClip=loaderpic(1.2,i,true);addChildAt(bigpic,0);bigpic.x=325;bigpic.y=300;="bigpic"+i;}//加载八张小图for (i=0; i<8; i++) {var smallpic:MovieClip=loaderpic(0.4,i,true);smallpic.mouseChildren=false;//大图不接受鼠标事件addChildAt(smallpic,8);//因为大图已经占用七个图层,因此小图要从第八个图层添加smallpic.buttonMode=true;smallpic.x=60*i;smallpic.y=20;smallpic.scaleX=smallpic.scaleY=1-i*0.08;smallpic.n=i;="smallpic"+i;smallpic.startX=smallpic.x;arr.push(smallpic);smallpic.addEventListener(MouseEvent.MOUSE_OVER,overf);smallpic.addEventListener(MouseEvent.MOUSE_OUT,outf);}//鼠标滑过的函数function overf(e) {var temp:MovieClip=e.target as MovieClip;if (temp.n!=0) {newTween(temp,"x",None.easeNone,temp.startX,arr[temp.n-1].x+arr[temp.n-1].wid th,1,true);//缓动的对象是temp,缓动的方向是x方向,方式是线性的匀速没有其他方式,开始的位置,终点位置,持续的时间为0.5秒,}temp.addEventListener(MouseEvent.CLICK ,clickf);}//鼠标滑出的函数function outf(e) {var temp:MovieClip=e.target as MovieClip;new Tween(temp,"x",None.easeNone,temp.x,temp.startX,1,true);//缓动的开始位置是当前的位置x坐标,终点变成原来的坐标x值了temp.removeEventListener(MouseEvent.CLICK ,clickf);}var talpha:Tween;var tscx:Tween;var tscy:Tween;var trotation:Tween;function clickf(e) {for (i=0; i<8; i++) {if (=="smallpic"+i) {var mc:MovieClip=getChildByName("bigpic"+i) as MovieClip;setChildIndex(mc,7);if (talpha!=null||tscx!=null||tscy!=null||trotation!=null) {talpha.fforward();tscx.fforward();tscy.fforward();trotation.fforward();}talpha=new Tween(mc,"alpha",Bounce.easeOut,0,1,3,true);//缓动的对象,对象的属性,alpha初始值为o,结束值为1,缓动次数为3//或者用这三种之一tscx=new Tween(mc,"scaleX",Bounce.easeOut,0,1,1,true);tscy=new Tween(mc,"scaleY",Bounce.easeOut,0,1,1,true);//这是缓动对mc缩放属性的设置//或者trotation=new Tween(mc,"rotation",Bounce.easeOut,0,720,1,true);}}}实例八加载网上的图片进行遮罩//====创建新影片并设置其坐标及对载入的图片进行遮罩相当于容器spritevar mc:MovieClip =new MovieClip();addChild(mc);mc.scaleX=3;mc.scaleY=3;mc.x=275;mc.y=200;//==========加载网上图片var url:URLRequest=newURLRequest("/azihennaini/pic/item/58adad.jpg"); var loader:Loader =new Loader();loader.load(url);addChild(loader);//========loader.mask=mc;//加载的图片遮罩元件mcloader.contentLoaderInfo.addEventListener(PLETE ,f);var k:int=0;function f(e:Event ) {stage.addEventListener(Event.ENTER_FRAME ,zhezhao); }//=============遮罩即扇形旋转遮罩效果var d:uint=0;var i:int=1;stage.frameRate=24;function zhezhao(e:Event ):void {var zhezhaomc:MovieClip =new Mc();mc.addChild(zhezhaomc);zhezhaomc.rotation=d*3;d++;if (d==120) {while (mc.numChildren >0) {mc.removeChildAt(0);}d=0;tumc.gotoAndStop(i+1);i++;if (i==10) {i=0;}} }实例九旋转相册效果var snd:Sound=new Yy();var sp:Sprite=new Sprite();addChild(sp);sp.x=300,sp.y=300;var r:int=230;var ma:Matrix=new Matrix();ma.createGradientBox(480,480,0,-240,-240);sp.graphics.lineStyle(10);sp.graphics.lineGradientStyle("radial",[0x00ffcc,0x],[1,1],[240,250],ma);//线条渐变填充说明,渐变范围是240-250所以线条粗细是10,因此只取240-250的颜色//sp.graphics .beginGradientFill("radial",[0x00ffcc,0x],[1,1],[230,250],ma)sp.graphics.drawCircle(0,0,r);//外边的大圆var arrYuan:Array=[];var arrPic:Array=[];var yuan0:MovieClip=new Yuan();sp.addChild(yuan0);yuan0.scaleX=yuan0.scaleY=1.8;for (var i:int=0; i<8; i++) {var yuan:Yuan=new Yuan();sp.addChild(yuan);var pic:Pic=new Pic();pic.gotoAndStop(i+1);sp.addChild(pic);yuan.x=pic.x=r*Math.cos(i*Math.PI/4);//初始状态即为两者坐标相同yuan.y=pic.y=r*Math.sin(i*Math.PI/4);arrYuan.push(yuan);arrPic.push(pic);pic.addEventListener(MouseEvent.CLICK,ckF);}var mc:MovieClip;function ckF(e) {if (e.target.scaleX==1) {//如果点击的是小图则mc代表自己mc=e.target;} else {mc=new MovieClip();//如果点击的是大图则实例化一个空元件}snd.play(300);}var n:Number=0;//控制角的度数增加addEventListener(Event.ENTER_FRAME,frame);function frame(e) {for (var i=0; i<arrYuan.length; i++) {arrYuan[i].x=r*Math.cos(i*Math.PI/4+n);//让每个圆不停地运动//这里只写了圆的位置转动而省去了写图片的位置转动,是因为下面//有个圆和图片的距离m,初始状态就是二者的坐标相同所以m=0<因此会自动执行这两句//arrPic[i].x=arrYuan[i].x;// arrPic[i].y=arrYuan[i].y;arrYuan[i].y=r*Math.sin(i*Math.PI/4+n);if (arrPic[i]==mc) {//如果这张图片是点击的小图arrPic[i].x+=(yuan0.x-arrPic[i].x)/3;//缓动公式让小图向中间移动arrPic[i].y+=(yuan0.y-arrPic[i].y)/3;arrPic[i].scaleX=arrPic[i].scaleY+=(yuan0.scaleX-arrPic[i].scaleX)/3;//缩放也实现缓动} else {//否则如果这张图片不是被点击的小图即大图arrPic[i].x+=(arrYuan[i].x-arrPic[i].x)/2;//让大图回到小圆上去arrPic[i].y+=(arrYuan[i].y-arrPic[i].y)/2;arrPic[i].scaleX=arrPic[i].scaleY+=(arrYuan[i].scaleX-arrPic[i].scaleX)/2;}varm=Math.sqrt((arrYuan[i].x-arrPic[i].x)*(arrYuan[i].x-arrPic[i].x)+(arrYuan[i].y-arrP ic[i].y)*(arrYuan[i].y-arrPic[i].y));if (m<5) {//只要两者之间的距离小于5,那么就让二者的坐标相等否则,系统会一直执行缓动并且越来越慢所以看起来感觉看到的是两个并重合arrPic[i].x=arrYuan[i].x;//arrPic[i].y=arrYuan[i].y;}}n+=0.015;//增加的是弧度值}实例10 图片撕裂的相册效果var p:MovieClip =new Pic();//不用添加场景var w:Number=p.width;var h:Number=p.height;var num:uint=p.totalFrames;////效果函数function Effect():Sprite {var S:Sprite =new Sprite();addChild(S);var Spic:Sprite =new Sprite();S.addChild(Spic);var maskS:Sprite =new Sprite();S.addChild(maskS);maskS.graphics.beginFill(0xff0000);//遮罩矩形maskS.graphics.drawRect(0,0,w/2,h);Spic.mask=maskS;for (var i:uint =0; i<num; i++) {var pic:MovieClip =new Pic()Spic.addChild (pic)pic.gotoAndStop(i+1);//注意元件帧数从1开始pic.x=i*w;//横排图片}Spic.addEventListener(Event.ENTER_FRAME ,f);function f(e) {for (var k:uint =0; k<Spic.numChildren; k++) {var mc:MovieClip=Spic.getChildAt(k) as MovieClip;mc.x--;if (mc.x<=- w) {mc.x=(Spic.numChildren -1)*w;//如果出了场景就接到最后一张后面}}}return S;}var sprL:Sprite=Effect();//制作思路是制作一个效果,然后得到两个,把另一个水平翻转即可sprL.y=50var sprR:Sprite=Effect();sprR.y=50sprR.x=w;sprR.scaleX=-1;实例11 2010河北中考数学连杆运动//====画点和对应字母函数function dianf(str:String,xx:Number ,yy:Number ):MovieClip {var mc:MovieClip =new MovieClip();addChild(mc);var m:Matrix=new Matrix ;m.createGradientBox(20,20,-10,-10);mc.graphics.beginGradientFill(GradientType.RADIAL ,[0xffffff*Math.random (),0xff0000],[1,1],[0,255],m);mc.graphics.drawCircle(0,0,5);mc.x=xx;mc.y=yy;var txt:TextField =new TextField();mc.addChild(txt);var txtF:TextFormat =new TextFormat();txtF.bold=true;txtF.color=0xffff00;txtF.align="left";txtF.size=30;txt.defaultTextFormat=txtF;txt.x=0;txt.y=10;txt.text=str;return mc;}//=====实例化点和线段,圆var mcA:MovieClip=dianf("A",100,100);var mcB:MovieClip=dianf("B",400,100);var mcK:MovieClip=dianf("K",250,300);var sp:Sprite =new Sprite();addChild(sp);sp.graphics.lineStyle(4,0x00ff00);sp.graphics.moveTo(mcA.x,mcA.y);sp.graphics.lineTo(mcB.x,mcB.y);sp.graphics.drawCircle(mcK.x,mcK.y,100);var mcM:MovieClip=dianf("M",100+300*Math.random(),100);//======给点M添加拖动事件mcM.addEventListener(MouseEvent.MOUSE_DOWN ,dragf);function dragf(e) {var Rect:Rectangle=new Rectangle(100,100,300,1);//===限制点M只能在线段AB上拖动mcM.startDrag(true,Rect);stage.addEventListener(Event.ENTER_FRAME ,f);//添加画三角形事件}stage.addEventListener(MouseEvent.MOUSE_UP ,upf);function upf(e) {mcM.stopDrag();}//====计算∠MKN的度数MKtxt.x=100,MKtxt.y=10;var sjx:Sprite =new Sprite();//=====注意实例化一个全局三角形容器是为了方便清空画线addChild(sjx);function f(e) {var MK:Number=Point.distance(new Point(mcM.x,mcM.y),newPoint(mcK.x,mcK.y))/50;MKtxt.text="MK长度"+(MK);var angM:Number=Math.atan2(mcK.y-mcM.y,mcM.x-mcK.x)*180/Math.PI;//点M的角度var angMKN:Number =Math.acos ((4+MK*MK-9)/(4*MK))*180/Math.PI;//∠MKN的角度var angN:Number=angM+angMKN;Ntxt.text="点的角度"+angN;var Nx:Number=mcK.x+100*Math.cos(- angN*Math.PI/180);var Ny:Number=mcK.y+100*Math.sin(- angN*Math.PI/180); sjx.graphics.clear();sjx.graphics.lineStyle(3,0xff0000);sjx.graphics.moveTo(Nx,Ny);sjx.graphics.lineTo(mcK.x ,mcK.y );sjx.graphics.lineTo(mcM.x ,mcM.y);sjx.graphics.lineTo(Nx,Ny);}实例12场景中一个btn按钮[SWF(frameRate=50)]//===========先造一个矩形var rect:MovieClip =new MovieClip();addChild(rect);rect.x=50;//矩形的左上角坐标rect.y=50;rect.graphics.lineStyle(3,0xff0000);rect.graphics.drawRect(0,0,6*50,2*Math.sqrt (3)*50);rect.graphics.moveTo(6*50,2*Math.sqrt (3)*50);rect.graphics.lineTo(9*50,2*Math.sqrt (3)*50);//======字母函数function zimu(xx:Number ,yy:Number,biaoqian:String ):TextField { var txt:TextField =new TextField();var txtF:TextFormat =new TextFormat();txtF.color=0xffffff;txtF.size=30;txtF.bold=true;txt.x=50+xx;//因为矩形的左上角是50,50txt.y=50+yy;txt.defaultTextFormat=txtF;//注意要把文字设置放在前txt.text=biaoqian;addChild(txt);txt.height =40return txt;}//=========实例化字母var A:TextField=zimu(0,2*Math.sqrt(3)*50,"A");zimu(6*50,2*Math.sqrt (3)*50,"B");zimu(6*50,0,"C");zimu(0,0,"D");zimu(9*50,2*Math.sqrt (3)*50,"P");var O:TextField=zimu(3*50,2*Math.sqrt(3)*50,"0");var F:TextField=zimu(9*50,2*Math.sqrt(3)*50,"F");var E:TextField=zimu(3*50,2*Math.sqrt(3)*50,"E");//=========== 点函数function point():MovieClip {var mc:MovieClip =new MovieClip();addChild(mc);mc.graphics.beginFill(0xffffff);mc.graphics.drawCircle(0,0,5);return mc;}//==========实例化点的做设置和坐标var pointF:MovieClip=point();var pointO:MovieClip=point();pointF.x=50+9*50;pointF.y=50+2*Math.sqrt(3)*50;pointO.x=O.x;pointO.y=O.y;var pointE:MovieClip=point();pointE.x=3*50+50;pointE.y=50+2*Math.sqrt(3)*50;var pointG:MovieClip=point();var len:Number=Point.distance(new Point(E.x,E.y),new Point(F.x,F.y)); pointG.x=E.x+len*Math.cos(-60*Math.PI/180);pointG.y=E.y+len*Math.sin(-60*Math.PI/180);var G:TextField=zimu(pointG.x,pointG.y,"G");//=========var n:int=0;//用来控制鼠标点击的奇偶次数而控制开始或运动btn.addEventListener(MouseEvent.MOUSE_DOWN ,df); function df(e) {n%2==0?ad dEventListen er(Event.ENT ER_FRAME,f): removeEvent Listener(Eve nt.ENTER_FRAME,f);//添加帧频事件n++;}var vE:Number=1;var mcS:MovieClip=newMovieClip();//用来装阴影的部分addChild(mcS);mcS.filters =[new GlowFilter(),new BevelFilter()];function f(e) {// 因为帧频是50,所以速度是6*50/6一共六秒即可pointF.x-=1;pointE.x<=A.x?vE*=-1:0;pointE.x-=vE;//字母跟随点的坐标F.x=pointF.x;F.y=pointF.y;E.x=pointE.x;E.y=pointE.y;//计算点G的坐标len=Point.distance(new Point(E.x,E.y),new Point(F.x,F.y)); pointG.x=E.x+len*Math.cos(-60*Math.PI/180); pointG.y=E.y+len*Math.sin(-60*Math.PI/180);G.x=pointG.x;G.y=pointG.y ;//画三角形graphics.clear();graphics.lineStyle(3,0xffffff*Math.random ());//graphics.beginFill(0xff0000,0.5);graphics.moveTo(E.x,E.y);graphics.lineTo(F.x,F.y);graphics.lineTo(G.x,G.y);graphics.lineTo(E.x,E.y);mcS.graphics .clear()if (pointF.x<9*50+50&&pointF.x>=8*50+50) {mcS.graphics.beginFill(0x0000ff);mcS.graphics.moveTo(6*50+50,50+2*Math.sqrt(3)*50 );mcS.graphics.lineTo(6*50+50,50);mcS.graphics.lineTo(E.x+4*50*Math.cos(-60*Math.PI/180),E.y+4*50*Math.sin(-60*Math.PI /180));mcS.graphics.lineTo(E.x ,E.y);mcS.graphics.lineTo(6*50+50,50+2*Math.sqrt(3)*50);mcS.graphics.endFill();}if (pointF.x<8*50+50&&pointF.x>=50+6*50) {mcS.graphics.beginFill(0x00ff00);mcS.graphics.moveTo(6*50+50,50+2*Math.sqrt(3)*50 );mcS.graphics.lineTo(6*50+50,50+2*Math.sqrt(3)*50-(F.x-7*50)*Math.tan (60*Math.PI /180));mcS.graphics.lineTo(F.x+4*50*Math.cos(-120*Math.PI/180),F.y+4*50*Math.sin(-120*Math.PI /180));mcS.graphics.lineTo(E.x+4*50*Math.cos(-60*Math.PI/180),E.y+4*50*Math.sin(-60*Math.PI /180));mcS.graphics.lineTo(E.x ,E.y);mcS.graphics.lineTo(6*50+50,50+2*Math.sqrt(3)*50);mcS.graphics.endFill();}if (pointF.x<50+6*50&&pointF.x>=50+5*50) {mcS.graphics.beginFill(0xff0000);mcS.graphics.moveTo(F.x,F.y );mcS.graphics.lineTo(F.x+4*50*Math.cos(-120*Math.PI/180),F.y+4*50*Math.sin(-120*Math.PI /180));mcS.graphics.lineTo(E.x+4*50*Math.cos(-60*Math.PI/180),E.y+4*50*Math.sin(-60*Math.PI /180));mcS.graphics.lineTo(E.x ,E.y);mcS.graphics.lineTo(F.x,F.y);mcS.graphics.endFill();}if (pointF.x<50+6*50&&pointF.x>=50+5*50) {mcS.graphics.beginFill(0xff0000);mcS.graphics.moveTo(F.x,F.y );mcS.graphics.lineTo(F.x+4*50*Math.cos(-120*Math.PI/180),F.y+4*50*Math.sin(-120*Math.PI /180));mcS.graphics.lineTo(E.x+4*50*Math.cos(-60*Math.PI/180),E.y+4*50*Math.sin(-60*Math.PI /180));mcS.graphics.lineTo(E.x ,E.y);mcS.graphics.lineTo(F.x,F.y);mcS.graphics.endFill();}if (pointF.x<50+5*50&&pointF.x>=50+3*50) {mcS.graphics.beginFill(0xffaacc);mcS.graphics.moveTo(F.x,F.y );mcS.graphics.lineTo(G.x ,G.y);mcS.graphics.lineTo(E.x ,E.y);mcS.graphics.lineTo(F.x,F.y);。

flash_CS3动画制作综合实例PPT

flash_CS3动画制作综合实例PPT
(1) 创建图形元件并输入文字“逸云莲池花圃”,然后在场景1中插 入“图层6”,在第160帧将其拖拽至舞台,如图10-20所示。
图10-20 拖拽文字元件至舞台
10.1 网页广告制作
(2) 插入“图层7”,在第160帧插入关键帧。单击【矩形工具】按 钮 创建一个矩形,并将其转换为元件。
(3) 在“图层7”的第203帧插入关键帧,并单击【任意变形工具】 按钮 使矩形覆盖整个文字。在第160帧至第203帧之间右击,在 弹出的快捷菜单中选择【创建形状补间动画】命令并将“图层 7”设为遮罩层。
图10-5 创建遮罩层
10.1 网页广告制作
(1) 在菜单栏中选择【插入】→【新建元件】命令,在弹出的【创 建新元件】对话框中点选【图形】单选钮,单击【确定】按钮。
(2) 在工具箱中单击【文本工具】按钮 ,在其【属性】面板中,根 据需要对文字的字体、字号、文本填充颜色进行修改,如图10-6 所示。
10.1 网页广告制作
(3) 按<Ctrl>+<F8>键创建新元件,在弹出的【创建新元件】对话框 中点选【图形】单选钮,然后单击【确定】按钮。
(4) 在工具箱中单击【文本工具】按钮 ,然后在舞台中单击,在【 属性】面板中将颜色设为“#000000”,输入文字“PLAY”。
(5) 选中“L”,将其颜色修改为“#990000”。
10.1 网页广告制作
(6) 在第7帧至第40帧之间任意处右击,在弹出的快捷菜单中选择【 创建补间动画】命令,制作好图片的由大至小的缩放动画效果。
(7) 在第45、80帧按<F6>键,插入关键帧。然后在第80帧将图片平 移到舞台的左侧,在第45帧至第80帧之间任意处右击,在弹出的 快捷菜单中选择【创建补间动画】命令,制作好图片的由右至左 的移动效果。

FlashCS3基础与实例教程教案

FlashCS3基础与实例教程教案

Flash CS3基础与实例教程教案Flash cs3 基础与实例教程重庆市职业中学学科教案本Teaching Plan20 年—20 年学年度学期The (1st/2na)Semester of the Academic Year from 20 to 20学校(School) __________________________ 学科(Subject) Flash CS3基础与实例__年级(Grade) ___________________________ 教师(Teacher)___________________________重庆大学出版社制第 1 页共 52 页重庆大学出版社制作Flash cs3 基础与实例教程《Flash CS3基础与实例教程》目录模块一初识Flash CS3注意: 任务一走进动画城按住Ctrl键后单击每个任务即任务二走进Flash CS3可跳转到对应的教案任务三制作七彩动感相框目模块二 Flash CS3工具的使用录任务一美丽蝴蝶——选择工具的使用 ?单击按钮可返回目录页面设置参数为: 任务二春暖花开——绘图工具的使用纸张:A4 任务三个性签名——文字工具的使用页边距为为默认模块三 Flash CS3中的元件、实例和库任务一蓝天白云沙滩——元件的使用任务二旋转风车——实例和库的使用模块四基础动画任务一画蜻蜓——逐帧动画任务二天鹅的故事——形状补间动画任务三中秋之夜——动作补间动画模块五高级动画任务一老鼠画汽车——引导层动画任务二礼花绽放——遮罩层动画任务三风景这边独好——交互动画模块六加入声音和视频任务一动物按钮——声音的应用任务二环保电影广告——视频的应用模块七特效制作任务一音乐相册——时间轴特效的应用任务二片头动画——混合模式的应用任务三广告文字——滤镜的使用模块八 Flash CS3的脚本动画任务一九九乘法表——Flash CS3编程基础任务二剪刀石头布——Flash CS3制作简单游戏模块九综合实战任务一时钟的制作任务二 MTV的制作任务三情人节贺卡——动画短片制作任务四公益广告——水是生命之源目教学录任务一走进动画城课题第 2 页共 52 页重庆大学出版社制作Flash cs3 基础与实例教程班级执教时间学习水平课知识点识理应分综堂记解用析合教1( 播放Flash动画片 ? 学2( 二维动画制作步骤 ? 目3( 动画原理与计算机动画 ? 标思想教育内容兴趣是最好的老师播放Flash动画片教学重点无教学难点课型实作课时安排 1教学内容与教学过程,达标措施、反馈矫正)一部优秀动画片的制作~不是一个人或一群人拍脑袋的发明创作~而是教学一个系统工程~一个有组织的集体创作结果。

基于Flash as3的“连连看”游戏型课件制作实例

基于Flash as3的“连连看”游戏型课件制作实例

基于Flash as3的“连连看”游戏型课件制作实例通过开发教学小游戏,让学生在游戏中学习,可以使原本枯燥的教学内容变得富有情趣,做到寓教于乐。

现通过Flash cs5制作一个简单的“连连看”小游戏课件,探索Flash as3游戏型课件的制作。

一、创建一个“Movie Clip”类的派生类启动Flash cs5(使用as3的其他Flash版本也可以),新建一个Action Script 3.0类文件,类名输入“llk”,然后在其中输入以下内容(以llk.as为文件名存盘):package{import flash.display.MovieClip;//导入必要的类import flash.events.MouseEvent;public class llk extends MovieClip{private static var SelectName:String=““,ParentName:String=““;//声明两个静态变量,保存选中的“连连看按钮”实例名和其父影片剪辑实例名public function llk(){this.addEventListener(MouseEvent.CLICK,f1);function f1(e:MouseEvent){if (llk.SelectName == && llk.ParentName != )//选择正确时执行{parent.parent[llk.ParentName][llk.SelectName].gotoAndPlay(3);//两选项同时闪动gotoAndPlay(3);parent.parent[llk.ParentName][llk.SelectName].removeEventListener (MouseEvent.CLICK,f1);//取消两选项的鼠标帧听e.currentTarget.removeEventListener(MouseEvent.CLICK,f1);llk.SelectName = ““;//清空保存的选中“连连看按钮”实例名}else{if (llk.SelectName != ““){parent.parent[llk.ParentName][llk.SelectName].gotoAndStop(1);//取消选中状态}llk.SelectName = ;// 保存选中的“连连看按钮”实例名和其父影片剪辑实例名llk.ParentName = ;gotoAndStop(2);//改变选中状态}}}}}二、创建一个基类为“llk”的影片剪辑元件,作为“连连看按钮”使用在Flash cs5中创建一个ActionScrtip3.0文件,并将其与“llk.as”保存在同一文件夹中。

Flash CS 3 平面动画案例教程与实训 第7章 经典案例

Flash CS 3 平面动画案例教程与实训  第7章 经典案例
二、操作步骤
(3)制作“一条污水”的图形元件、“污水”的影片剪辑元件和 “污染动画”影片剪辑元件,如下图。
(4)制作“后来”影片剪辑元件和“污染的波纹”图形元件并将 所有与污染有关的元件都放在“污染现象”文件夹里。
2021/5/24
38
7.3 “《环境污染》公益广告” 案例
二、操作步骤
9.制作“沉鱼”画面。 (1)制作“fish2”和“鱼落”的影片剪辑元件如下图
2021/5/24
39
7.3 “《环境污染》公益广告” 案例
二、操作步骤
10.制作“落雁”画面。 (1)制作“雁子luo”、“雁和天空2”影片剪辑元件如下图
2021/5/24
40
7.3 “《环境污染》公益广告” 案例
二、操作步骤
11.制作“闭月”画面。 12.制作“羞花”画面。 13.制作“共建美好的家园”画面如下图
56
二、操作步骤
7.4 “圣诞贺卡” 案例
5.制作雪球滚动动画镜头。 (1) 制作“开头动画”图形元件如下图
2021/5/24
57
二、操作步骤
13
7.2 “个人简历” 案例
二、操作步骤
7.制作“个人简历等影片剪辑”元件。 (1)利用遮罩动画制作“个人简历”影片剪辑元件,如下图
(2)使用直接复制的方法制作出“个人相册”、“联系方式”、“未来 憧憬”和“兴趣爱好”等四个影片剪辑。
2021/5/24
14
7.2 “个人简历” 案例
二、操作步骤
7.3 “《环境污染》公益广告” 案例
三、技能要点
1. 公益广告的设计思路 2. Flash动画中的常用镜头
摇镜头 推/拉镜头
2021/5/24
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Flash as3的“连连看”游戏型课件制作实例
通过开发教学小游戏,让学生在游戏中学习,可以使原本枯燥的教学内容变得富有情趣,做到寓教于乐。

现通过Flash cs5制作一个简单的“连连看”小游戏课件,探索Flash as3游戏型课件的制作。

一、创建一个“Movie Clip”类的派生类
启动Flash cs5(使用as3的其他Flash版本也可以),新建一个Action Script 3.0类文件,类名输入“llk”,然后在其中输入以下内容(以llk.as为文件名存盘):
package
{
import flash.display.MovieClip;//导入必要的类
import flash.events.MouseEvent;
public class llk extends MovieClip
{
private static var SelectName:String=““,ParentName:String=““;//声明两个静态变量,保存选中的“连连看按钮”实例名和其父影片剪辑实例名public function llk()
{
this.addEventListener(MouseEvent.CLICK,f1);
function f1(e:MouseEvent)
{
if (llk.SelectName == && llk.ParentName != )//选择正确时执行
{
parent.parent[llk.ParentName][llk.SelectName].gotoAndPlay(3);//两选项同时闪动
gotoAndPlay(3);
parent.parent[llk.ParentName][llk.SelectName].removeEventListener (MouseEvent.CLICK,f1);//取消两选项的鼠标帧听
e.currentTarget.removeEventListener(MouseEvent.CLICK,f1);
llk.SelectName = ““;//清空保存的选中“连连看按钮”实例名
}
else
{
if (llk.SelectName != ““)
{
parent.parent[llk.ParentName][llk.SelectName].gotoAndStop(1);//取消选中状态
}
llk.SelectName = ;// 保存选中的“连连看按钮”实例名和其父影片剪辑实例名
llk.ParentName = ;
gotoAndStop(2);//改变选中状态
}
}
}
}
}
二、创建一个基类为“llk”的影片剪辑元件,作为“连连看按钮”使用
在Flash cs5中创建一个ActionScrtip3.0文件,并将其与“llk.as”保存在同一文件夹中。

在“插入”菜单中选择“新建元件”,在新建元件对话中“名称”设置为“连连看按钮”,类型选择“影片剪辑”,在ActionScript链接中勾选“为ActionScript 导出”,并将基类改为“llk”,如图1所示:
图1
单击“确定”按钮后出现“类警告”对话框,直接“确定”即可。

在第一帧舞台上绘第一个矩形,并在第一帧上添加语句“stop();”,在第二帧插入关键帧,修改矩形的边框和填充,表示选中状态。

前两帧如图2所示。

从第三帧到第十帧,使用遮罩制作一个闪动效果的动画,被遮罩层解锁后看到的画面如图3所示。

图2
图3
在最后一帧插入一个空白关键帧并输入如下语句:
MovieClip(parent).gotoAndStop(2);
stop();
三、使用“连连看按钮”影片剪辑元件制作连连看游戏课件
制作一个“连连看选项”影片剪辑元件。

图4
新建一个影片剪辑元件,将“连连看按钮”影片剪辑元件拖入其中,在属性面板中为其命名(注意命名时不要使用as3的关键字和保留字,如x和y,否则会报错),并在第一帧输入语句“stop();”,然后在其上一图层输入相应的文字,再在第二帧插入一个空白关键帧(如图4所示)。

用与制作一个“连连看选项”相同的方法制作多个选项(可以直接复制,然后修改文字)。

在制作过程中要注意里面包含的“连连看按钮”实例名命名遵循以下规则:
①对应选项中包含的“连连看按钮”实例名相同。

②不是对应选项包含的“连连看按钮”实例名都要不同。

③实例名不要使用as3关键字和保留字。

将所有制作好的“连连看选项”影片剪辑元件拖放到主时间舞台上,并为每个一实例命名。

注意这里所有的实例名都要不同,并且不能使用as3关键字和保留字。

至此完成了一个简单的“连连看”教学小游戏课件的制作。

测试时,单击一个选项变为选中状态,再单击另一选项时,如果不是对应选项,取消原选项的选中状态,并选中新选项,如果是对应选项,则同时闪动并消失(如图5所示)。

图5。

相关文档
最新文档