用FLASH制作变幻的曲线

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

思路:把变幻线看成是一些点在运动,这些点之间有连线。每个点的运动规律类似,从某点以一定速度的沿x、y方向做直线运动,如果此点超出左右边界,x方向的速度取反,如果此点超出上下边界,则y方向的速度取反。因为这些点并不显示,所以创建空影片作为点,并用画线函数连接这些点。

思路有了,我们开始编写程序

源码:

var dot_num = 6;

if (!started) {

// 调用复制函数复制点

duplicate_dot();

started = true;

}

onEnterFrame = function () {

for (var n = 1; n<=dot_num; n++) {

dot_move(this["dot"+n], this["dot"+n].xspeed, this["dot"+n].yspeed);

}

line_draw();

};

// 复制函数,并设置点的初始位置和速度

function duplicate_dot() {

for (var n = 1; n<=dot_num; n++) {

// 创建空影片作为点,实例名为dot1、dot2、dot3...

createEmptyMovieClip("dot"+n, n);

// 让这些点在场景中随机分布

this["dot"+n]._x = random(400);

this["dot"+n]._y = random(300);

// 设置这些点向x、y方向运动的速度

this["dot"+n].xspeed = random(20)+10;

this["dot"+n].yspeed = random(20)+10;

}

}

// 点的运动函数,obj为影片,xspeed,yspeed分别为x,y方向运动的速度

function dot_move(obj, xspeed, yspeed) {

with (eval(obj)) {

// 让影片运动

_x += xspeed;

_y += yspeed;

// 超出左右边界时,xspeed取反

if (_x>400) {

_x = 400;

xspeed = -xspeed;

}

if (_x<0) {

_x = 0;

xspeed = -xspeed;

}

// 超出上下边界时,yspeed取反

if (_y>300) {

_y = 300;

yspeed = -yspeed;

}

if (_y<0) {

_y = 0;

yspeed = -yspeed;

}

}

}

// 画线函数,连接各个点

function line_draw() {

createEmptyMovieClip("line", 5000);

with (line) {

// 定义线的大小,颜色、透明度

lineStyle(1, 0xFF00FF, 100);

// 画线的起点

moveTo(dot1._x, dot1._y);

// 连接点dot1到dot2...dot10

for (var n = 2; n<=dot_num; n++) {

lineTo(this["dot"+n]._x, this["dot"+n]._y);

}

// 连接到dot1,构成一个多边形

lineTo(dot1._x, dot1._y);

}

}

把以上程序输入到flash MX的帧中,一个简单的变幻线效果就完成了。有兴趣的朋友可加入颜色、线型等变化。快来试试看吧!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有