用Flash AS代码制作美丽光影变幻动画
4738 点击·0 回帖
![]() | ![]() | ||||||
![]() | 本例中我们用Flash8 的Blendmode来制作美丽光影变幻动画。 效果演示: /imagelist/2007/326/8174i43752b6.swf 制作思路: 这个影片剪辑中包含了五帧,每一帧上有不同颜色的小球,我们通过Actionscript代码来控制跳定位在不同颜色的小球上,从而实现不同颜色小球之间相互叠加,并在场景中复制,同时通过Actionscript控制小球的自动移动,并应用融合效果。 制作方法: 1.新建一个Flash文档,文件的场景大小设置为590*350.背景为黑色.帧频设置为31,将其另存为blendmode3.fla. 2.打开新建的blendmode3.fla.在主场景中绘制一个38*38大小的园形二维形体,按下shift+F9打开混色器,选择放射状添充,当选择蓝色,如下图所示. ![]() ![]() 3.选中这个园形按下F8键,将其转换为图形符号,命将它的名称命名为Blue.同时注意它的注册点。将注册点置于中心位置。如下图所示。 ![]() ![]() 6.创建完多个小球之后,我们在主场景保持空的。如果场景上有图形元件要删去。 然后按下Ctrl+F8.创建一个新的影片剪辑,我们将它命名为Clip.然后将我们刚刚他建的五个不同颜色的小球元件,从库中拖至clip影片剪辑的帧上,如下图所示。 ![]() ![]() 8.完成上面的操作之后。选中主场景上的第一帧,按下F9,打开Actionscript面板。我们准备输入代码。第1页:彩色小球 第2页:AS代码控制(一) 第3页:AS代码控制(二) 代码如下: [table=550][tr][td][pre]//定义中心位置 var cx = 180; var cy = 180; //设定循环20次,准备从库中复制链接id为partical的影片. for (var i = 0; i<20; i++) { //复制影片剪辑,引用名称为mc. var mc = this.attachMovie("partical", "p"+i, i); with (mc) { //初始化影片剪辑的位置,注意此时cx,cy是用来调整mc实例的偏移位置的. _x = cx+Math.random()*60; _y = cy+Math.random()*60; } //针对mc应用融合模式类型"add" mc.blendMode = "add"; //设定mc实例的角度随机值 mc.tx = random(360); mc.ty = random(360); //设定用于mc角度的增量随机值 mc.xtempo = Math.random()/10; mc.ytempo = Math.random()/10; //设定mc实例的速度随机值 mc.xd = Math.random()*10+1; mc.yd = Math.random()*10+1; mc.x0 = mc._x; mc.y0 = mc._y; //跳转到指定的帧,以变换不同颜色的小球上. mc.gotoAndStop(random(5)+1); //通过onEnterFrame循环,来让粒子移动. mc.onEnterFrame = function() { this.tx += this.xtempo; this.ty += this.ytempo; this._x = this.x0+Math.sin(this.tx)*this.xd; this._y = this.y0+Math.cos(this.ty)*this.yd; }; }[/pre][/td][/tr][/table] 9,测试你的影片,你就会看到如下面的效果。 ![]() 首先从整段上代码上,我们实际上只用了一个for循环。这个for循环的作用是复制20个链接名为partical的影片剪辑。然后我们在循环的内部对复制后的粒子引用名mc进行初始化,控制。 起始的两行是用来调整所有粒子的相对屏幕中的位置的。 代码: [table=550][tr][td][pre]//定义中心位置 var cx = 180; var cy = 180;[/pre][/td][/tr][/table] 接下来我们从for循环的内部开始说起,我们将它分为块,一块是初始化复制后的粒子,另一段是为粒子实例mc 加入动态属性,为后面的控制移动做准备。第三块则是使用onEnterFrame循环来控制移动。 初始化复制后的粒子 代码: [table=550][tr][td][pre]//复制影片剪辑,引用名称为mc. var mc = this.attachMovie("partical", "p"+i, i); with (mc) { //初始化影片剪辑的位置,注意此时cx,cy是用来调整mc实例的偏移位置的. _x = cx+Math.random()*60; _y = cy+Math.random()*60; }[/pre][/td][/tr][/table] 这一段代码,现在来讲我们已经很熟知了,我们通过顶端的for循环20次。将库中的链接名为partical的粒子复制到场景中。复制的方法我们使用是的是attachMovie的方式,复制后的影片剪辑更名为”p” +I,也就是说你复制的结果应是p0,p1,p2,p3…..p19,而所有的这些影片剪辑我们为它起个实例名为mc.它代表了所有复制得到的影片剪辑。在with内部,我们开始指定这些粒子的初始位置。注意此时我们用上了cx,cy.并且加上了随机数60,也就是说料子初始化的位置在180-240的位置之间。 为粒子实例mc 加入动态属性 代码:
第1页:彩色小球 第2页:AS代码控制(一) 第3页:AS代码控制(二) 用onEnterFrame循环来控制移动 代码:
Ok.在整段代中,我们看到使用融合模式blendmode只有一行,但在这里它显得尤为重要,加上与去掉效果是截然不同的。 现在你就可以测试你的影片了。 接下我们要在上面的基出上进行一下变化。看看效果会有什么不同。 我们现在要增加粒子的大小和范围。代码做如下的修改。 代码:
![]()
| ||||||
![]() | ![]() |