您的位置:首页网页设计Flash → 用Flash制作鬼火效果

用Flash制作鬼火效果

时间:2004/11/7 2:17:00来源:本站整理作者:蓝点我要评论(0)

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

    首先启动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

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 Flash CS4基础入门 如何在Flash中打开一个定制的浏览器新窗口?学习ActionScript 3.0的6个好处几个小技巧精简Flash文件体积在Flash动画中添加“加为收藏”和“设为首页

人气排行 Flash游戏制作--小熊拼图用Flash实现几种镜头效果Flash制作动画知识:遮罩Flash如何做鼠标指针样式Flash制作环形文字Flash制作声情并茂的电子相册实例讲解flashMTV制作全过程(3)鼠标效果系列教程:游动的鱼