数组在画线中的应用一 |
| 作者:佚名 来源:闪吧 作者: 龙族酷少 更新:2007-1-13 20:48:49 错误报告 我要投稿 |
前些天研究了一下数组的各种用法,但是还是似懂非懂,不过感觉数组用在画线中还是比较方便的,用来存储画线的各个点,可以很方便的画出各种形状来,看看下面这个例子,应该会得到一些启示,其实主要是用来作为存储的作用……
点击浏览该文件
将下列代码直接复制到第一桢即可,为了更好理解,代码已经做了注释
point = new Array();//定义一个数组,从下面的变量可以看出,这是一个二维数组 i = 1; point[0] = [100, 150]; point[1] = [150, 150]; point[2] = [150, 100]; point[3] = [100, 100]; point[4] = [100, 150]; point[5] = [100, 200]; point[6] = [150, 200]; point[7] = [150, 150]; //以上是初始化数组的一些值,每个值又是一个数组 x = point[0][0]; y = point[0][1];//定义画线的初始点,也就是数组的第一个值 createEmptyMovieClip("line", 1);//创建一个空影片,用于画线 line.lineStyle(1, 0x00FFFF, 100);//定义线型 line.moveTo(point[0][0], point[0][1]);//开始画线 line.onEnterFrame = function() {//在画线影片里逐桢执行 if (x != point[i][0] && y != point[i][1]) { //当下一个画线的点的XY坐标都不等于当前的这个点的XY坐标的时候 x = (x < point[i][0]) ? (x + 1) : (x - 1);//X加1或者减1 y = (x-point[i-1][0])*(point[i][1]-point[i-1][1])/(point[i][0]-point[i-1][0])+point[i-1][1]; //得到要画线的下个点的Y坐标,根据相似三角形原理很容易就可以得到 this.lineTo(x, y);//画线 } else if (x != point[i][0]) {//如果Y相等但是X不相等 x = (x < point[i][0]) ? (x + 1) : (x - 1);//直接X加1就可以了 this.lineTo(x, y);//画线 } else if (y != point[i][1]) {//如果X相等并且Y不相等 y = (x < point[i][1]) ? (y + 1) : (y - 1);//直接Y加1就可以 this.lineTo(x, y);//画线 } else if (i < point.length - 1) {//当执行完这次画线以后,如果下一个点还是在数组确定的范围,继续画线 i++;//移动到下一个点 } else { delete this.onEnterFrame;//如果画线到最后一个点以后,删除这个补间 } }; 点击浏览该文件
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |