flash特效之流星雨

时间:2022-05-19 12:44:09 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
flash特效之流星雨

2010-10-20 11:08:12| 分类: AS2.0课堂 | 标签:flash教程 |字号 订阅

来源:闪客帝国 作者:zjs35 一、算法分析

流星的运动轨迹是一条直线,从起点运动到终点,运动的方向通过直线的角度来控制。 如图1所示:





1、角度的控制

AB为一水平的直线,把直线AB旋转一定的角度即直线AC。在flash中,角度按顺时针方向旋转为正,

范围从0180.要得到直线AC,通过MCrotation属性来设置,表示如下: mc._rotation = angle; 2、运动控制

流星的运动起点为A,终点为C,从A点运动到C点只需设置流星的在xy方向的速度,即图2中的ADCD。在flash

用正余函数和弧度可计算这两个速度。表示如下: vx = Math.cos(radian)*v; vy = Math.sin(radian)*v;

通过enterFrame事件让流星的坐标不断加上vxvy就可实现沿直线AC运动。 二、制作过程

1、打开flash,新建400*200文档,其他默认。

2、按O键在场景中画一无线条的小圆,用鼠标把小圆拖拽成如图2所示的形状,选中该图形,在ColorMixer设置如图2,并按F8转换为影片剪辑,注册点在右端。






3、返回主场景,按Ctrl+L打开库,从库中拖出上一步制作好的流星,按Ctrl+F3调出属性面板,实例名设为:

fallingStar,按F9打开动作面板,输入下列AS: */

onClipEvent (load) {

var angle = 60;//流星的角度

var radian = angle*Math.PI/180;//转换为弧度 _rotation = angle;//设置流星的角度 _x = random(400);

_y = 0;//流星运动的起点坐标,x随机,y0,让流星位于 主场景之上 time = 100;//运动时间控制 v = random(6)+2;//速度为一随机值

a = 0.09;//y方向的加速度,可使效果更加逼真 vx = Math.cos(radian)*v;//x方向的速度 vy = Math.sin(radian)*v;//y方向的速度 }

onClipEvent (enterFrame) {

vy +=a;//y方向的速度加上加速度,这样水平方向是匀速运动,垂直方向是加速运动 _x += vx;

_y += vy;//设置流星的坐标

_alpha = _xscale=_xscale=_yscale=time;//流星的缩放比例,用时间来控制 time -= 2;//时间不断递减

if (_x<0 || _x>400 || _y<0 || _y>120) {

shis.removeMovieClip();//如果流星超出范围删除 } } /*

4、返回主场景,在第一帧上输入下列AS,不断复制流星,形成流星雨效果: var n = 0;


onEnterFrame = function () {

fallingStar.duplicateMovieClip("fallingStar"+n++, n); };

5、按Ctrl+Enter测试观看效果。

本例主要应用了直线运动的原理,Windows屏保中的飞越星空,还有flash MTV中的下雨效果等特效都可以用此原理实现。赶快试试吧。 */


本文来源:https://www.wddqw.com/doc/a1c9106c561252d380eb6e23.html