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的新特点,结合自己的知识来制作一些实例,既锻炼了自己的水平,也可以与别人交流经验,岂不是一举两得吗。 源文件下载
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器