返回列表 发新帖
楼主: 我捣蛋我快乐 - 

flash制作基础教程

[复制链接]

145

主题

5088

帖子

5098

积分

新手上路

Rank: 1

积分
5098
发表于 2005-1-17 17:10:38  | 显示全部楼层
然后打开”混色器”面板给小方块填充放射状渐变色.混色器中设置如图:

  填充好后用”填充变形工具”将填充修改如图:

  修改好填充后我们把它转换成一个图符元件,以便今后修改.在这个方形被选中的状态下按下F8.转换成一个图符元件.如图:

  然后选中”方块”元件进行”复制”—“粘贴”N次(我复制了10个),排列成如图所示;选中这些方块后按下F8将它们转换成一个图符元件.起名为”方块遮罩”如图:

回复

使用道具 举报

145

主题

5088

帖子

5098

积分

新手上路

Rank: 1

积分
5098
发表于 2005-1-17 17:11:35  | 显示全部楼层
4.接下来我们作遮罩动画   将图层2设成显示轮廓状态(点击图层2名称右边的小方框),然后将”方块遮罩”元件放到如图位置:

  然后将所有图层延长到第30帧处,并在图层2的30帧处插入一个关键帧.将”方块遮罩”元件移到如图位置,并建立运动间补动画.

  这样就可以形成一个动画嵌套的运动的效果.   将图层2拖到图层1下,设立遮罩,图层1为遮罩层,图层2为被遮罩层,然后将图层2的轮廓显示取消

  回车看一下效果.如果你现在是循环播放,那你会看到动画是一个循环运动的。没有停顿,也没有太大的变化,这就是我们所说的动画嵌套运动;
回复

使用道具 举报

145

主题

5088

帖子

5098

积分

新手上路

Rank: 1

积分
5098
发表于 2005-1-17 17:12:51  | 显示全部楼层
5.接下来我们就给这个字上加点小特效。落叶!   新建一个图符元件,起名为”落叶”.确定后在窗口中画个大小为10象素左右的叶子形状,填充色可以是单色,也可以是一渐变色.为了观察我将背景改成了黑色如图:

  6.再新建一个影片剪辑元件,起名为”落叶动画”.确定后把”落叶”元件从库中拖到场景中注册点左下角位置..并在放置它的图层的第30帧处插入一个关键帧.将第30帧上的”落叶”元件向左下角移到一段距离.然后设置运动间补动画.并在属性面板中设置顺时针旋转一圈.

  7.再新建一个影片剪辑元件,起名为”复制落叶”, .确定后把”落叶动画”元件从库中拖到场景中注册点右边位置..并起实例名为”ly”

回复

使用道具 举报

145

主题

5088

帖子

5098

积分

新手上路

Rank: 1

积分
5098
发表于 2005-1-17 17:13:43  | 显示全部楼层
选中第1帧(或新建一个图层,选中第1帧),按下F9,打开动作面板,在动作面板中加入以下代码   (注释参考源文件中…..) onLoad = function () { n = 0; }; onEnterFrame = function () { duplicateMovieClip("ly", "ly"+n, n); setProperty("ly"+n, _x, random(300)); setProperty("ly"+n, _y, random(30)); setProperty("ly"+n, _alpha, random(50)+50); n++; if (n>30) { n = 0; } };   8.回到主场景中来,把”文字动画”MC与”复制落叶”拖到主场景中.并使”复制落叶”MC位于”文字动画”MC的左上角

  基本的效果制作完了.接下来就是美化一下.这部分不讲.请参考源文件~修改文字元件中的文字字体及遮罩方块的填充还会得到更多效果….
回复

使用道具 举报

145

主题

5088

帖子

5098

积分

新手上路

Rank: 1

积分
5098
发表于 2005-1-17 17:23:34  | 显示全部楼层
下面是作品最终效果:

  其实整个过程很简单的,大概的思想就是找一个雪花的图片,然后把它封装成一个MC元件,再加入AS语句就可以啦。   好,下面就开始动手了:   新建一个snow.fla文件   设置其舞台大小为:800*560   背景为黑色   先准备一个雪花文件:      把它插入到新建的FLA文件中。   将雪花拖入到主场景中,放置于舞台外,并封装为snow_mc,别忘记定义其实例名:snow_mc   加入两行字并封装为merry1_mc,merry2_mc,别忘记定义其实例名(雪花要落到上面)
回复

使用道具 举报

145

主题

5088

帖子

5098

积分

新手上路

Rank: 1

积分
5098
发表于 2005-1-17 17:26:00  | 显示全部楼层
在第一帧as编辑区里加入下面的AS语句: stop(); var i; //产生60个小雪花 for (i=1; i<60; i++) { //产生新的雪花剪辑元件 snow_mc.duplicateMovieClip("snow"+i+"_mc", i); //新的雪花的X,Y坐标 eval("snow"+i+"_mc")._x = random(800); eval("snow"+i+"_mc")._y = random(560); //新的雪花的形变 scale = random(60)+50; //不同的透明度,产生层次感 eval("snow"+i+"_mc")._alpha = scale; //不同的大小,产生层次感 eval("snow"+i+"_mc")._xscale = scale; eval("snow"+i+"_mc")._yscale = scale; //加入控制雪花的AS语句 snow(eval("snow"+i+"_mc")); } //这个函数是用来产生一个新的雪花 function createSnow() { //深度递加 i++; //产生实例 snow_mc.duplicateMovieClip("snow"+i+"_mc", i); eval("snow"+i+"_mc")._x = random(800); eval("snow"+i+"_mc")._y = random(560); scale = random(60)+50; eval("snow"+i+"_mc")._alpha = scale; eval("snow"+i+"_mc")._xscale = scale; eval("snow"+i+"_mc")._yscale = scale; snow(eval("snow"+i+"_mc")); } //加入控制雪花的AS语句的函数 function snow(snow_mc) { snow_mc.onLoad = function() { //舞台大小 stage_x = 800; stage_y = 560; //用来判断是否降落 this.moving = true; //判断是否接触到字体剪辑 touch = false; //风向和风力 windx = (_xmouse-stage_x/2)/100; }; //风向和风力随鼠标的移动而改变 snow_mc.onMouseMove = function() { windx = (_xmouse-stage_x/2)/100; updateAfterEvent(); }; snow_mc.onEnterFrame = function() { //判断moving if (this.moving) { //随机数用来产生摇摆效果 s = random(2); //雪花下落 this._y += 10; if (s == 0) { this._x += 5; } else if (s == 1) { this._x -= 5; } //加上风力 this._x += windx; //超出舞台就初始化 if (this._y>stage_y || this._x<0) { this._y = 0; this._x = random(stage_x); } //产生旋转效果 this._rotation = random(180); //未接触MERRY1_MC就执行 if (!touch && this.hitTest(merry1_mc)) { //产生随机数用以判断是否应该停止下落 stopOrNot = random(4); //如果随机数为1,则停止下落 if (stopOrNot == 1) { //this._y += random(5); //使moving为false,停止下落 this.moving = false; //因为接触了MERRY1_MC,使touch为true touch = true; //因为停止下落,所以删除onEnterFrame delete this.onEnterFrame; //因为停止下落,所以重新再产生一个小雪花 createSnow(); } } //这里和上面的一样,只不过减少了功能 if (this.hitTest(merry2_mc)) { stopOrNot = random(2); if (stopOrNot == 1) { //this._y += random(5); this.moving = false; delete this.onEnterFrame; createSnow(); } } } }; }   好啦,ctrl+enter就可以测试了,如果可以的话,还可以加入好看一点儿的背景,那样效果就更好了。
回复

使用道具 举报

145

主题

5088

帖子

5098

积分

新手上路

Rank: 1

积分
5098
发表于 2005-1-17 17:28:15  | 显示全部楼层
最终效果预览:

  点击下载源文件(zip压缩文件,59K)   制作目标是:鼠标点击哪儿,焰火在哪儿绽放。连续点击,同时绽放不同颜色的焰火   做法简要介绍如下,文中名称均使用源文件中的名称,一些常规操作的介绍就省略了。 一、准备工作:   焰火基本元件:本段的命名,仅仅是为了识别方便,可以任意命名。焰火基本元件的做法,也仅仅是个参考做法,完全可以自由发挥,因为公开了源文件,介绍中只说了大致做法。   1、新建一图形元件,画一红色图形,可以先画1个圆,然后用箭头工具向后拉长。如图1。命名为基本元件,(图1)

图1
回复

使用道具 举报

145

主题

5088

帖子

5098

积分

新手上路

Rank: 1

积分
5098
发表于 2005-1-17 17:30:22  | 显示全部楼层
2、再新建一图形元件,画一灰色图形,如图2,命名为烟。选择“烟”图形,打开混色器,选“线性”,调整“烟”的前端透明度(Alpha)在50%左右,后端透明度在10%左右。(图2)

图2
  3、新建一个电影剪辑元件(MC),命名为烟火元件,建2个图层,上面是焰火,下面是烟。分别把上边制作的2个图形元件拖入2个图层,放元件 + 处的左侧水平处,如图3,并在第10帧插入关键帧。然后进行加工。为了便于看清,图3中烟的颜色做了改变。   (1)选中焰火图层第10帧的焰火图形,用键盘箭头键把它向前移动到标尺100处,然后用任意变形工具,或者修改属性中“宽”的数据等办法,把原来的长图形改变成一个圆点形状,在1—10帧之间建立“动作”变化。为了增加些效果,拷贝第10帧,复制到第11、13帧,把圆点的颜色改变为白色。   (2)选中烟图层第1帧的烟图形,用上面的办法把它缩短,选中烟图层第10帧的烟图形,用键盘箭头键把它向前移动,前端紧跟焰火图形圆点,在1—10帧之间建立“动作”变化。为了增加些效果,在13帧处插入关键帧,把透明度(Alpha)调整到30%左右,在10—13帧之间建立“动作”变化。(图3)

图3
  4、新建一个按键元件,前3帧空白,不需要加工,在第4帧反应区(点击),用任意颜色画一个矩形,大小同flash作品的大小一样。是一个空按键。   5、按自己爱好,准备背景图片、文字。
回复

使用道具 举报

145

主题

5088

帖子

5098

积分

新手上路

Rank: 1

积分
5098
发表于 2005-1-17 17:32:48  | 显示全部楼层
二、AS部分   1、新建一个MC,命名为“焰火”,其中图层2是放焰火时的声音效果,不介绍了。 图层1第1、2帧是逐帧动画,用红颜色线表现焰火上升时光的痕迹,红线是垂直的,位置对准元件界面的 + 处,图4是第2帧的拷屏。

图4
  把准备工作3中制作的烟火元件拖入图层1第3帧,烟火元件的 + 对准操作界面“焰火”元件的 + ,选中舞台上拖入的烟火元件,在属性中给这个MC命名为fire(这个命名不能错,必须同下面的AS中的一致),然后在15帧插入普通帧(同拖入的烟火元件帧数一样)。   选中图层1第3帧,写入如下帧动作,可以选专家模式,复制、粘贴上去,AS的作用是把烟火元件按圆周分布,随机复制100个以下,得到一个比较漂亮的焰火: for (i=1;i<100;i++) { duplicateMovieClip("fire","fire"add i,i); setProperty("fire"add i,_rotation,random(360)); setProperty("fire"add i,_xscale,random(100)); setProperty("fire"add i,_yscale,random(100)); }   在第16帧插入一个空白关键帧,选中这帧,写入如下帧动作,作用是删除复制的整个焰火元件myMC1并停止。 stop(); removeMovieClip(myMC1);   2、制作场景部分   场景如图5,就3个图层,4帧。(图5)

图5
  (1)背景图层放入准备好的背景图片、文字。   (2)在“按键”图层第1帧写下如下帧动作: var i=0;
回复

使用道具 举报

145

主题

5088

帖子

5098

积分

新手上路

Rank: 1

积分
5098
发表于 2005-1-17 17:34:48  | 显示全部楼层
在“按键”图层第2帧插入关键帧,写入如下帧动作,使播放到第2帧时停止。 stop();   在“按键”图层第2帧拖入制作好的空按键,空按键拖入舞台呈现绿色,调整到正好覆盖舞台,然后在第4帧插入普通帧。   选择按键,写下如下按键动作,作用是当鼠标点击按键时,取得鼠标点击位置的X、Y的坐标,为复制的焰火元件起新的名字myMC1,并播放到第3帧。 on(release){ x = _xmouse; y = _ymouse; var myMC1 = "myMC" add i; gotoAndPlay(3); }   (3)在“图层”第3帧插入关键帧,拖入上面制作的“焰火”MC,在第4帧再插入关键帧。 在“图层”第3帧选中拖入的“焰火”MC(不方便可以先将按键图层上锁后再选中MC),在属性中命名myMC,这个命名必须同AS中的命名一样,不能错。   选中“图层”第3帧,写入如下帧动作,作用是复制“焰火”MC,并且其坐标位置同鼠标点击处一致。达到鼠标点击哪儿,焰火在哪儿绽放的目标。 i = i+1; _root.myMC.duplicateMovieClip(myMC1, 100+i); setProperty(myMC1, _x, x); setProperty(myMC1, _y, y);   选中“图层”第4帧,写入如下帧动作,作用是回到第2帧并停止,以重新开始。 gotoAndStop(2);   (4)在“图层”第3帧选中拖入的“焰火”MC(不方便可以先将按键图层上锁后再选中MC),写入如下影片剪辑动作,作用是按下鼠标时让“焰火”MC的颜色随机改变。达到连续点击,同时绽放不同颜色的焰火的目标。 onClipEvent (mouseDown) { this.c=new Color(this); this.c.setRGB(random(0xFFFFFF)); }   制作时,上面说到的帧动作、按键动作、影片剪辑动作不要搞错,可以先看一下动作面板的名称,再打开写入AS。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
快速回复 返回顶部 返回列表