Flash怎么制作流星动画- flash流星滑过天空效果的制作方法
制作流星动画需要以下几个步骤,我们来一步步讲解:
1. 新建Flash文件
首先,打开Adobe Flash软件,新建一个Flash文件。
2. 绘制流星的形状
在新建的Flash文件中,使用画笔工具或椭圆工具绘制流星的形状,并在右键菜单中选择“转换为符号”。在弹出的对话框中,选择“电影剪辑”,并给电影剪辑起一个名字。
3. 制作烟雾效果
可以使用代码或动态字体制作烟雾效果,这里以代码实现为例:
在画布下方新建一层,右键选择“新建空白关键帧”,并在该帧上输入以下代码:
var smoke:Sprite = new Sprite();
smoke.graphics.beginFill(0x333333);
smoke.graphics.drawCircle(0, 0, 20);
smoke.alpha = 0.5;
addChild(smoke);
function moveSmoke(event:Event):void {
smoke.x -= 5;
smoke.y -= 2;
smoke.rotation += 5;
smoke.alpha -= 0.05;
if(smoke.alpha <= 0){
removeChild(smoke);
this.removeEventListener(Event.ENTER_FRAME, moveSmoke);
}
}
this.addEventListener(Event.ENTER_FRAME, moveSmoke);
这段代码创建了一个圆形的烟雾,并通过 Event.ENTER_FRAME
监听每一帧的事件,在每一帧中改变烟雾的位置、旋转角度和透明度,最终让烟雾随着流星滑过天空。
4. 制作流星动画
回到流星的电影剪辑中,右键选择“新建经典动画关键帧”,并在该帧上选中流星的形状,并进行如下设置:
- 将透明度设置为0;
- 将缩放值设置为1.5;
- 在“运动”选项中,设置“运动路径”为一条从左到右斜向上的路径;
- 在“颜色效果”选项中,选择“着色器”为“虚线”。
接下来,在最后一帧上,将透明度设置为0。
5. 组合流星和烟雾效果
回到画布中,将流星动画和烟雾效果组合在一起。首先在画布新建一个MovieClip,给它起一个名字作为实例名,并将其放置在画布中的合适位置。然后将流星动画和烟雾效果都拖动到这个MovieClip中,并在该MovieClip中设置它们的运动时序和效果。
示例一:使用TweenMax动画库制作流星
在这个示例中,我们将使用GreenSock的TweenMax动画库,来制作流星动画。
-
新建Flash文件,并选择ActionScript 3.0模板。
-
导入TweenMax库,具体方法请看“TweenMax入门指南”。
-
绘制流星的形状,并将其转换为电影剪辑。
-
在流星的电影剪辑中,创建两个动画关键帧。第二个关键帧上,透明度和缩放值都设置为0。并在第一个关键帧上,选择“运动”选项中的“运动路径”为一个从左到右斜向上的路径,选择“颜色效果”选项中的“虚线”。
-
在主时间轴中创建一个新的MovieClip,并给它起一个名字作为实例名。
-
在MovieClip中,拖入流星的电影剪辑并将其放置在左边。再使用TweenMax的
to()
方法,让流星动画沿着路径运动,并在到达终点时消失。具体代码如下:
import com.greensock.TweenMax;
import com.greensock.easing.*;
TweenMax.to(star_mc, 2, {bezier:[{x:50, y:50}, {x:100, y:0}], alpha:0, scaleX:0, scaleY:0, ease:Quad.easeIn});
-
沿用第三步中的烟雾效果的制作方法,制作烟雾效果。
-
将烟雾效果和流星动画的MovieClip放置在舞台上。
示例二:使用逐帧动画制作流星
在这个示例中,我们将使用逐帧动画的方式,来制作流星动画。
-
新建Flash文件。
-
绘制流星的形状,并将其转化为电影剪辑。在电影剪辑中创建两个动画关键帧,第二个关键帧上缩放值和透明度设置为0,第一个关键帧上选择“运动路径”为一个从左往右斜向上的路径,设置“颜色效果”的“虚线”。将电影剪辑保存。
-
制作烟雾动画,具体方法请看第三步中的代码或动态字体实现。
-
在主时间轴中,创建一个新的MovieClip,并命名为"star_mc"。
-
在"star_mc"中,放置流星的电影剪辑,并添加烟雾效果。
-
在第一帧上,添加以下ActionScript代码:
stop();
this.addEventListener(Event.ENTER_FRAME, moveStar);
function moveStar(event:Event):void {
if(star_mc.x < stage.stageWidth + 50) {
star_mc.x += 5;
}
else {
removeEventListener(Event.ENTER_FRAME, moveStar);
this.parent.removeChild(this); // 将制作好的Flash文件发布为swf文件时可以注释掉该行代码,否则将无法显示该效果
}
}
- 将MovieClip"star_mc"放置在舞台上即可。
这时,我们就成功地制作出了一个流星飞过天空的动画效果。