用AS模拟电流效果
作者:未知 来源:转载 发布时间:2005-8-9 20:25:17 发布人:acx
制作步骤:
1、打开FLASH MX,新建一文档,并修改其文档属性为(尺寸:200X100;背景:黑色)
2、在主场景中的第1帧,加入如下AS:
_root.createEmptyMovieClip("myMC", 1);
//创建一MC
//用AS在MC中画一无线框、填充为蓝色的小方块,1X1象素大小
with (myMC) {
lineStyle(1, 0xff0000, 0);
beginFill(0x00ccff, 100);
moveTo(0, 0);
lineTo(1, 0);
lineTo(1, 1);
lineTo(0, 1);
lineTo(0, 0);
endFill();
}
n = 2;
while (n<=200) {
duplicateMovieClip("myMC", "myMC"+n, n);
eval("myMC"+n)._x += n;
n++;
}
//定义enterFrame事件控制器
_root.onEnterFrame = function() {
n = 50;
for (i=2; i<=200; i++) {
n += random(3)-1;
eval("myMC"+i)._y = n;
}
};
myMC._visible = 0;
//隐藏原MC
3、Ctrl+回车测试。
编程思路:
1、首先我们要用createEmptyMovieClip()创建一个新MC,命名为“myMC”要在其内画一小方块。做为电流的一个元素。
_root.createEmptyMovieClip("myMC", 1);
在主场景中新建一MC,深度为1。
2、在MC中画一1X1象素的小方块。
为了语法简洁、简化程序代码,我们可以用with语句
with (myMX) {
lineStyle(1, 0xff0000, 0);//定义线条样式,但我们些例用来到线条,所以将其透明度设置为0——即完全透明。
beginFill(0x00ccff, 100);//定义填充样式,颜色为00ccff,透明度为100%,即完全不透明。
moveTo(0, 0);//下面就是来画线了,以(0,0)坐标为左上角;(1,1)为右下角的一个小矩形。
lineTo(1, 0);
lineTo(1, 1);
lineTo(0, 1);
lineTo(0, 0);
endFill();//完成填充
}
3、电流的基本‘元素’我们已经做好了,下面就是来复制这些‘元素’了。
n = 2;//一定要设置为2,不要忘了,第1深度是我们开始新建的MC。所以这次的初始变量我们把它设置为2。
while (n<=200) {
duplicateMovieClip("myMC", "myMC"+n, n);//不用我多说了,常用的复制命令。
eval("myMC"+n)._x +=n;//每复制完一个‘元素’时,就将其向右移动,最后使复制出来的‘元素’排成一条直线。
n++;//变量的累加。
}
4、好了,复制完毕后,我们要想制作出电流效果,就得让其不断的改变电流中每个‘元素’的位置。
//定义enterFrame事件控制器
_root.onEnterFrame = function() {
n = 50;//也就是电流最左侧在Y轴上的位置
for (i=2; i<=200; i++) {
n += random(3)-1;//random(3)的值为0、1、2。当值为0时,0-1=-1,此时的‘元素’会向上(Y轴的负方向)移动。当值为1时1-1=0,此时的元素位置不变。当值为2时,2-1=1,会向下(Y轴的正方向)上移动。
eval("myMC"+i)._y = n;
}
};
OK,基本的编程思路就是这样了,自己动手试试吧。