|
> MacroMedia公司的Flash
MX刚推出不久,相信好多朋友最近都在学习MX中的一些新增功能,我也和大家一样,一直在研究MX的新特性以及和Flash5的区别,顺便结合MX的新特性做了一些精彩实例,下面的这个实例是一群蝴碟飞舞的效果,其中使用了一些MX的新功能,现在就让我们看看具体如何来制作。
首先需要一张静态的蝴碟的图片,大家可以从本文最后提供的源文件中得到,也可以自己动手制作,至于工具吗,那可太多了,不过我建议大家使用Fireworks,毕竟我们可以直接在MX中导入FW生成的文件。
当鼠标从画面划过,蝴蝶就会跟随您的鼠标翩翩起舞
先来制作蝴蝶翅膀震动的动画,在影片中新建一个MovieClip组件,起名为butterfly.然后从图库中把已经导入的蝴蝶的图片拖到组件butterfly的编辑区中,如图1所示:

图1
然后在图层1的第六帧插入一个关键帧,这时我们就要用到MX 新增的Free Transform Tool(自由转换工具)
了,选取Free Transform Tool以后,在点一下编辑区中的蝴蝶,这时候蝴蝶四周会出现8个调节手柄,如图2所示:

图2
我们通过这些手柄来调节蝴蝶的翅膀的形状,使两个翅膀向里翻,但是翻的幅度不要过大,否则看上去就会不自然的,如图3所示:

图3
接着在第9帧也插入一个关键帧,还是使用Tree Transform Tool工具,继续调整蝴蝶的翅膀,使其继续向内翻,如图4所示:

图4
最后将图层1延续到第12帧,这段简单的蝴蝶翅膀震动的效果就做好了。
接下来我们就要让蝴蝶飞起来了。
接下来我们就要让蝴蝶飞起来了。我们再新建一个Movie Clip组件,起名为fly,在fly组件编辑区中,用鼠标右键点击图层layer1,在弹出的菜单中选择Add
Motion Guide命令,添加一个引导层,如图5所示:
图5
然后在引导层layer2上画一条弯曲的线,绘制蝴蝶飞舞的路径,绘制的时候选择straighten方式
, 然后利用次选工具
进行调节,这时候我们发现flash mx的次选工具的功能加强了 ,当你选择任一个点时都能够轻松的对线段的弧度进行调节,弯曲度可以自己掌握,最好看上去象真正的蝴碟的飞行路径就可以了,如图6所示:

图6
然后选择图层layer1,将组件butterfly从图库中脱到图层layer1中,并且将butterfly组件定位到引导线的一个端点,作为飞行的开始点,大家注意一定要先将flash的吸附功能打开,方法是点一下工具箱中的吸附按钮
,这样才能使引导线起作用。如图7所示:
图 7
然后分别在图层layer1的第6,13,21,30帧建立关键帧,将蝴蝶定位到引导线的不同位置,最后分别建立motion
tween移动过渡,然后也可以接着复制几只蝴蝶 ,对蝴蝶的飞舞方向进行适当的调节,这时候就使用到了flash mx的新增工具
Free Tramsform Tool,减轻了以前制作过程中对object的大小角度调节的工作强度,这样,蝴蝶的飞行动画也做好了。最后时间轴如图8
所示;
图8
接下来就是要进行as的编写,对组件fly进行控制,以产生随机出现的飞舞的蝴蝶。
接下来就是要进行as的编写,对组件fly进行控制,以产生随机出现的飞舞的蝴蝶。
在Flash MX中写as,比flash5多了一个很有用的辅助功能,就是我们在写入ActionScript时,可以对程序的行进行编号,这样就方便了多人团体合作时对程序的调试和维护,如图9和图10所示:

图9

图10
我们在新建立一个mocie clip组件,起名为action,在这个组件中,我们来编写控制动画的核心as,首先在组件中新建立一个图层layer2,然后将组件fly拖到图层layer2中,将时间轴延续到第八帧,如图11所示:
图11
然后打开Properties面板,给fly组件取实例名为bb,如图12所示:
图12
在图层layer1的第一帧中添加一下代码:
Count = 0;
//设置一个记数器,并赋初值为0
OldY = _ymouse;
//取得鼠标的y坐标值
OldX = _xmouse;
////取得鼠标的x坐标值
在图层layer1的第3帧插入一个关键帧,添加一下代码:
MouseX = _xmouse;
//再次取得鼠标的x坐标值
MouseY = _ymouse;
//再次取得鼠标的y坐标值
if ((Number(OldX)<>Number(Mousex)) or (Number(OldY)<>Number(MouseY)))
{
//如果新旧坐标值不相等,则执行下面的代码
duplicateMovieClip("bb", "bb" add Number(Count),
Count+850);
//复制电影剪辑bb
setProperty("bb" add Number(Count), _x, MouseX);
//设置复制出的对象的x坐标
setProperty("bb" add Number(Count), _y, MouseY);
//设置复制出的对象的y坐标
setProperty("bb" add Number(Count), _rotation,
random(360));
////设置复制出的对象的角度
Count = Count+1;
//记数器加一
if (Number(Count)>7) {
Count = 0; //最多复制七个
}
}
同样在图层layer1的第6帧也插入一个关键帧,添加一下代码:
OldX = _xmouse;
//保存以前的鼠标的x坐标值,以为以前的值要和新的值进行对比
OldY = _ymouse;
//保存以前的鼠标的y坐标值
gotoAndPlay(3);
//循环执行核心代码
最后将图层layer1的时间线延续到第8帧,最后的时间线如图13所示:
图13
回到主场景中,将组件action拖到主场景中,这样我们制作的蝴蝶飞舞就完成了,虽然制作起来不是很复杂,但是看起来蛮漂亮的,大家可以在学习的过程中继续寻找MX的新特点,结合自己的知识来制作一些实例,既锻炼了自己的水平,也可以与别人交流经验,岂不是一举两得吗。
源文件下载
|