专 题 |
电脑入门 | 操作系统 | 办公软件 | 电脑DIY | 网页制作 | 等级考试 | 网络专栏 |
会员登陆 | 会员退出
会员注册 | 会员列表
 当前位置:> 网络学院 > 阅读新闻 打印本页


用Flash制作鬼火效果

 时间:2003-4-18 16:21:57
 

  本实例的火焰效果和一般的火焰效果不同,这里的火焰除了不停的抖动和伸缩外,还会不断的变化火焰的颜色,加上黑色的背景,给人一种神秘的感觉,看上去很象一些电影中的鬼火,是不是很恐怖哦,长话短说,下面我们就来学习其制作方法。(本例源文件请点击下载)

  首先启动Flash,新建一个大小为500px*400px,背景色为黑色的影片。

  既然制作的效果是火焰,自然少不了一个简单的火焰效果,然后通过Action的控制,就可以变化出变幻莫测的火焰来。所以新建一个Movie clip组件,命名为fires,进入组件的编辑状态后,使用椭圆工具绘制一个长条形的椭圆,使用箭头工具将椭圆的两个尖调整的细一点,然后使用颜料桶工具将其填充为黄色和黑色的线性填充色,如图1所示:



图1

  然后分别在图层layer1的第5桢和第8桢插入两个关键桢,回到第5关键桢,将此祯的椭园对象的长度调整的长一些,如图2所示:



图2

  分别建立第1关键桢到第5关键祯和第5关键桢到第8关键桢之间的Motion运动过渡效果,时间线如图3所示;



图3

  既然我们的这个火焰效果是可以变化颜色的,所以现在就来制作控制火焰颜色变化的Action控制代码。新建一个Movie clip,命名为color,进入组件的编辑状态后,在图层layer1的第1桢添加如下Action:

col = Random(0xafafaf)+0x999999;

//使用random随机函数取随机值,其中0xafafaf和0x999999为16进制数,16进制//数常用于颜色设置。Col变量接受产生的随机数


firecol = new Color(_root["fire"and i]);

ffcol = new color(_root.ff);

//定义两个color类的对象firecol和ffcol

firecol.setRGB( col );

ffcol.setRGB( firecol.getRGB()+0xfaff44 );

//两个color类的对象firecol和ffcol分别被设置了相应的颜色

  在图层layer1的第2桢添加如下Action:

col = col+0x0f0f0f;

//重新设置变量col的值

firecol.setRGB( col );

ffcol.setRGB( firecol.getRGB()+0xfaff44 );

//重新设置两个color类的对象firecol和ffcol的颜色值

  在图层layer1的第10桢添加如下Action:

gotoAndPlay(2);

//返回到第2桢

  这样,我们需要的所有组件就都准备好了,接下来就需要布置主场景了。

  回到主场景中,将组件fire从图库中拖到图层layer1中,并放置到舞台的合适位置,在属性面板中命名其为ff,然后将图层layer1延伸到第3桢,如图4所示:



图4

  新增一个图层layer2,将组件color拖到工作区的任意位置即可,因为组件layer2中没有任何图形对象,全部为Action控制代码,所以组件color放置到工作区时只能看到一个空的圆圈,说明这个是一个空的Movie clip.


  再新增一个图层layer3,在第1桢添加如下Action控制代码:

if (i>10) {

i = 0;

}

i++;

duplicateMovieClip("/ff", "fire"and i, i);

setProperty("fire"and i, _x, _root.ff._x+Random(7)-3);

setProperty("fire"and i, _y, _root["fire"and (i-1)]._y-60*Math.pow(0.6,i));

setProperty("fire"and i, _xscale, Math.pow(0.95,i)*100);

setProperty("fire"and i, _yscale, Math.pow(1.05,i)*100);

//复制10个对象ff的副本,然后分别设置副本的坐标和缩放尺寸。

  在图层layer3的第3桢添加如下Action控制代码:

if (i>10) {

i = 0;

}

i++;

duplicateMovieClip("/ff", "fire"and i, i);

setProperty("fire"and i, _x, _root.ff._x+Random(7)-3);

setProperty("fire"and i, _y, _root["fire"and (i-1)]._y-60*Math.pow(0.55,i));

setProperty("fire"and i, _xscale, Math.pow(0.95,i)*100);

setProperty("fire"and i, _yscale, Math.pow(1.05,i)*100);

gotoAndPlay(1);

//上面的Action和第1桢中的完全相同,目的是重复执行这段代码。

  最后的时间线如图5所示:



图5

  本实例的最终效果如图6所示:



图6

 

【】【 】【关闭】来源:铁通呼伦贝尔信息港   

 ·上一条:Flash光影字效果 (4-18)
 ·下一条:Flash制作环形文字 (4-18)
 相关专题:
 尚无信息
 相关信息:用Flash制作鬼火效果
 尚无信息
╣ 用Flash制作鬼火效果 会员评论[共 0 篇] ╠
╣ 我要评论 ╠
姓 名:   密 码:   新人注册
  推荐文章  
- 用Flash制作鬼火效果
- Flash光影字效果
热门图片信息
尚无热门图片