您好,欢迎来到我要学flash网!登录注册

Flash8 Blendmode—光影变换

来源:我要学flash网 | 作者:admin | 发表时间:2011-10-14 | 点击:  次

文章出处:http://www.webstudio.com.cn
http://www.webstudio.com.cn/tutorial/tuts/flash8_blendmode/dynamic_blend3.swf
制作思路: 创建影片剪辑,其中此影片剪辑中包含了五帧,每一帧上有不同颜色的小球,在代码中我们会通过Actionscript来控制它跳转帧已定位在不同颜色的小球上,来实现不同颜色小球之间相互叠加,并在场景中复制,通过Actionscript控制它的自动移动,并应用融合效果.

操作方法:
1.新建一个Flash文档,文件的场景大小设置为590*350.背景为黑色.帧频设置为31,将其另存为blendmode3.fla.
2.打开新建的blendmode3.fla.在主场景中绘制一个38*38大小的园形二维形体,按下shift+F9打开混色器,选择放射状添充,当选择蓝色,如下图所示.

注意右边的混色器,在下面的滑块中,我们左边用的是蓝色,右边是也蓝色,但它的透明度是0,添充后效果如下图所示。

注意这个园形的大小当前为我们放大后观看的效果,它的原本大小为38*38.
3.选中这个园形按下F8键,将其转换为图形符号,命将它的名称命名为Blue.同时注意它的注册点。将注册点置于中心位置。如下图所示。

4.确定后我们就创建完成了Blue符号,依照相同的方法,我们需要创建另外4种颜色的小球,在本例中我们创建了如下几种颜色的小球。

5.还有一个创建不同颜色小球的简单的方法,选中我们刚创建的蓝色小球,右击选择直接复制。然后在进入到复制后的图形元件内部,进行修改颜色。
6.创建完多个小球之后,我们在主场景保持空的。如果场景上有图形元件要删去。 然后按下Ctrl+F8.创建一个新的影片剪辑,我们将它命名为Clip.然后将我们刚刚他建的五个不同颜色的小球元件,从库中拖至clip影片剪辑的帧上,如下图所示。

7.ok.完成了这一步之后,返回到主场景中,选中库中我们刚刚创建的clip影片剪辑,右击选择链接。会打开链接标识窗口。如下图所示。

在打开的窗中,先选中”为Actionscript导出”,然后在链接标识处输入出境partical名称。确定。我们在此处创建的链接名是为我们在主帧上添写代码时,用来使用attachMovie进行贴加复制操作的。
8.完成上面的操作之后。选中主场景上的第一帧,按下F9,打开Actionscript面板。我们准备输入如下代码。

代码:
//定义中心位置
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;
};}
代码:
//定义中心位置
var cx = 180;
var cy = 180;
代码:
//复制影片剪辑,引用名称为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;
};
代码:
this._x = this.x0+Math.sin(this.tx)*this.xd;
this._y = this.y0+Math.cos(this.ty)*this.yd;
代码:
//定义中心位置
var cx = 0;
var cy = 0;

//设定循环20次,准备从库中复制链接id为partical的影片.
for (var i = 0; i<100; i++) {
//复制影片剪辑,引用名称为mc.
var mc = this.attachMovie(“partical”, “p”+i, i);
with (mc) {
//初始化影片剪辑的位置,注意此时cx,cy是用来调整mc实例的偏移位置的.
_x = cx+Math.random()*590;
_y = cy+Math.random()*350;
_xscale = _yscale = 100 * Math.random()*5+1;

}
//针对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;
};}
代码:
//定义中心位置
var cx = 0;
var cy = 0;
//设定循环20次,准备从库中复制链接id为partical的影片.
for (var i = 0; i<100; i++) {
//复制影片剪辑,引用名称为mc.
var mc = this.attachMovie(“partical”, “p”+i, i);
with (mc) {
//初始化影片剪辑的位置,注意此时cx,cy是用来调整mc实例的偏移位置的.
_x = cx+Math.random()*590;
_y = cy+Math.random()*350;
_xscale = _yscale = 140 * Math.random()*5+1;
}
//针对mc应用融合模式类型”add”
mc.blendMode = “hardlight”;
mc.cacheAsBitmap = true;

//设定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;
};}

斜体加粗的代码为我们所修改过的位置,我们增大了缩放,同时将融合模式换成了hardlight.当然你可以试一下其它的融合方式,同时我们增加了mc.cacheAsBitmap = true.通过这一句是加速我们的影片剪辑的运算速度。测试的效果如下。

http://www.webstudio.com.cn/tutorial/tuts/flash8_blendmode/dynamic_blend4.swf

相关文章

    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    本文引用地址:
      最新评论: 共有位网友发表了评论
      发表评论:
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名: 密码: 验证码: