| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > ActionScript教程 > 文章正文 用户登录
新年让头发大玩动

新年烟火           

新年烟火

作者:佚名 来源:闪客天堂 作者: wei386 更新:2007-1-13 20:48:28 错误报告 我要投稿

新年烟火(原创)
                                               作者:wei386
 本教程属wei386和闪客天堂www.flasher.cn)所有,如转载请写明出处。
 新年过了,看着略显冷清的节日,想不想多一点喜庆气氛?烟火!不过现在禁放,没关系,让我们的flash帮我们实现!

 
 1,前期准备:

 打开flashMX新建一个MC取名yanhuoyuan,本篇所有动画都以它为基础,画一个红色的圆,再在圆的一半的位置相下
 画一个红色的矩形,把矩形下端两各角拖拉合并成一个角,返回主场景即可,yanhuoyuan以后留在烟火
 的上升,和绽放用。

 

 2烟火的制作
 新建一个MC取名yanhuo1,把yanhuoyuan从库中拖出,放在中心“+”位置,点击window->Info,打开
 Info面板,会看到面板上半部的右侧有9个方框组成的图,点击左上角的方框,可把yanhuoyuan的中心
 位置定在左上角,选自由变换工具把yanhuoyuan往左倾斜20度,在第4,8帧插入关键帧,把第4帧的
 yanhuoyuan用自由变换工具往右倾斜40度,与1,8帧基本对称,在1,4帧点右键分别创建动画,产生
 yanhuoyuan左右摇摆的效果。yanhuo1制作完毕。
 返回主场景,新建一个MC取名yanhuo2,制作烟火燃放的效果,把yanhuo1从库中拖出,用自由变换工具旋转到大约7:00时针位置,新建一层layer2,复制
 layer1中的yanhuo1到layer2并旋转到8:00时针位置,把layer2中的yanhuo2缩小一点,并往上稍移一点
 ,再新建一层layer3,复制yanhuo1至layer3,旋转到9:00时针位置,缩小并往上移动一点,依次类推,
 再创建4个层,分别旋转并移动,使7层的7个图形,排列成一个半圆状,而且往上依次变小。在15帧分别
 创建关键帧,把7个图形分别沿自己的方向,向外延伸,个别调节位置之后,使7个图形仍在一个半圆上,
 作出扩散效果。选中15帧,Ctrl+A选中15帧所有图形,在properties面板color中选Alpha,把7个图形的
 透明度设置为0。选layer2的第1帧中的图形,在properties面板color中选Tint任意设置颜色,并分别为其余5
 层中的图形设置不同的颜色,把7层排列顺序,从上往下,layer1~~layer7,使最大的图形在最上层,
 分别在7个层创建动画,产成不同颜色扩散并从有到无的效果。
 返回主场景,新建MC,取名yanhuo,把yanhuo1从库中拖出,在15帧创建关键帧,把15帧的yanhuo1拖到场景中央
 "+"位置,选中第1帧的yanhuo1,按shift把yanhuo1沿直线相下拖动一定距离,创建动画,产生烟火升起效果,
 新建一层layer2,在16帧插入关键帧,把yanhuo2从库中拖出放入layer2第16帧,选中yanhuo2,选Modify->Transform->flip Horizontal
 把yanhuo2进行水平翻转,把翻转后的yanhuo2旋转调整位置与没翻转的yanhuo2组成一个原形,复制16帧的图形,
 新建一层layer3,在16帧插入关键帧,Ctrl+Shift+v在原来位置将layer2中的图形复制到layer3中,选自由变换工具,
 按Shift拖拽,按比例缩小,依次类推,再创建3个层,4,5,6层,分别在16帧插入关键帧,并复制图形,然后按比例依次缩小,
 选中第6层的图形并复制,新建一层layer6,Ctrl+Shift+v在原来位置将layer6中的图形复制到layer7中的17帧上,选中
 第2层的图形并复制,新建一层layer8,Ctrl+Shift+v在原来位置将layer2中的图形复制到layer8中的20帧上,
 以产生层层燃放效果,选中layer2-layer8的30帧,按F5插入帧,烟火就做好了,看着一个个烟火只在一个地自己
 燃放,是不是觉得有点孤独?下面我们就让烟火听自己指挥,让它在哪放就在哪放。

 

 3,后期制作
 返回主场景,新建一个Button按钮,取名button画一个正方形,按F6在over,down,hit插入关键帧,返回主场景,
 将button拖入场景,用自由变化工具调整button大小与舞台大小一致,双击layer1中的button按钮,将up,over,down中的
 图形删除,只留hit中的图形,返回主场景,一个透明按钮就做好了。选第2帧,按F5插入帧。
 新建一层layer2,在layer2第2帧按F6插入关键帧,将yanhuo从库中拖出,放在layer2第2帧,(此时
 layer2第1帧为空白帧)选中yanhuo在properties面板将yanhuo命名为yh,以备以后编程用。选中layer1中的button,打开Actions面板输入语句:
 ---------------------------------------------------------
 on (press) {//鼠标按下时
     x = _xmouse;//获得鼠标x轴坐标给x,
     y = _ymouse;//获得鼠标y轴坐标给y,
     gotoAndStop(2);//跳转到第2帧
 }
 ---------------------------------------------------------

 选中layer1的第1帧,在Actions面板中输入帧动作
 --------------------------------------------------------
 stop();
 --------------------------------------------------------

 选中layer2第2帧,在Actions面板中输入帧动作
 --------------------------------------------------------
 setProperty(yh, _x, x);//设置名为yh的MC的x轴坐标为x
 setProperty(yh, _y, y);//设置名为yh的MC的y轴坐标为y
 gotoAndStop(1);//跳转到第1帧
 --------------------------------------------------------

 双击打开yanhuo,新建一层layer9在30帧插入关键帧,打开Actions面板输入帧动作
 --------------------------------------------------------
 stop();//停止,使yanhuo不循环,
 gotoAndStop(1);//跳转到第1帧
 -------------------------------------------------------
 返回主场景,烟火动画就做完了,ctrl+enter测试一下,鼠标点哪,烟火就在哪燃放。

 

 
 4. 画龙点睛
 这样一次只能放一个烟火,如果我想放很多个怎么办?没问题,我们先思考一下怎么实现
 支持多个燃放,就是每一次点鼠标,就复制一个新的yanhuo,这样可以使每一个烟火都是独立的。烟火燃放之后
 需要删除复制的yanhuo,用duplicateMovieClip和removeMovieClip即可实现。想好了,作起来就方便了。
 返回主场景,选中layer1,layer2的所有帧,用鼠标往右拖动一帧,使layer1,layer2中的第1帧都成为空白帧
 新建一个层layer3,在layer3第1帧输入帧动作
 ------------------------------------------------------
 var i=0;
 -----------------------------------------------------
 选中layer1的第2帧中的button,将语句改为:
 ======================================================
 on (press) {
     x = _xmouse;
     y = _ymouse;
     var yhx = "yh" add i;//定义变量yhx,值为yh+i,使以后复制的yanhuo名字不一样,
     gotoAndStop(3);
 }
 =====================================================

 选中layer2的第2帧,打开Actions面板将帧动作改为:
 =====================================================
 i = i+1;//i每次加1
 _root.yh.duplicateMovieClip(yhx, 100+i);//复制主场景名为yh的MC,新名为yhx(真实为yh+i),深度为100+i
                                            (使每次新复制的yhx不重叠) 
 setProperty(yhx, _x, x);
 setProperty(yhx, _y, y);
 gotoAndStop(2);
 ====================================================

 双击打开yanhuo,将layer9第30帧的帧动作改为:
 ====================================================
 stop();
 removeMovieClip(yhx);//烟火燃放后删除复制的yhx
 gotoAndStop(2);
 ===================================================
 返回主场景,整个动画结束。怎么样,看看效果还可以吧?

 
 最后,你也可以点缀一下,我就加了一个燃放个数记录,选文字输入工具,在porperties面板中选Dynamic Text
 (动态文本),将var值设置为i,就可以了。你还可以进行别的改进,比如把烟火作的在漂亮点。希望你可以从中得到启发。
 这是我第一篇教程,有不当之处请指出。让我们共同进步。
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。