讲之前要线说明一点,前面的几个画线方法是我从闪吧的as区转过来的,目的是为了让初学者更加清楚的认识几个画线方法的功能.为了更加的易懂,我加上了一些注解------就这点而言,版主同志,转的几张贴还是要加分的^_^ 在flash mx中新增加了一些函数,包括linestyle这个画线线用的小函数,但是,很有用. 昨天我在老闪吧的论坛里面看见几个高手的贴,于是转贴过来就. (有多高?,60贴可以在老论坛25分,呵呵) 不说废话,开工 大家先看看他的演示动画, 使用了颜色,线条等多种函数和方法.
as粗略解析: i = 1; //建立色块,排列色块 for (r=0; r<=0xFF; r += 0x33) { for (g=0; g<=0xFF; g += 0x33) { for (b=0; b<=0xFF; b += 0x33) { dye.duplicateMovieClip("d"+i, i); cc = new Color(eval("d"+i)); eval("d"+i)._x = 25+int((i-1)/18)*11; eval("d"+i)._y = 20+((i-1)%18)*11; cc.setRGB(r*256*256+g*256+b); i++; } } } //隐藏鼠标 Mouse.hide(); //复制铅笔 pen.duplicateMovieClip("penp", 100000); //铅笔的鼠标跟随 penp.startDrag(true); //隐藏原有的铅笔和色快 dye._visible = false; pen._visible = false; //建立新的颜色对象 dyecolor = new Color(_root.penp.pencolor); //设定初始色块颜色为黑色 dyecolor.setRGB(0); n = 217; p = 0; x0 = 0; //////////////////////////////////////////////////////////////////////////////////////// frame2 as: 这下面的乱起八遭的,我水平有限,不能完整解释,没办法,我是菜鸟 if (P == 1) { if (X0 == 0) { //用两个变量储存此时鼠标位置 X0 = _xmouse; Y0 = _ymouse; } else { X1 = _xmouse; Y1 = _ymouse; X2 = _xmouse; Y2 = _ymouse; n = n+1; //建立一个空的电影夹子,天知道他想干什么. createEmptyMovieClip("xian"+n, n); //画线线,用颜色对象里面的颜色,亮度为80 eval("xian"+n).lineStyle(2, _root.dyecolor.getRGB(), 80); //线条初始位置设定为鼠标的当前位置 eval("xian"+n).moveTo(x0, y0); //绘制曲线 eval("xian"+n).curveTo(x1, y1, x2, y2); //用新的鼠标位置取代旧的鼠标位置 X0 = X2; Y0 = Y2; } } ////////////////////////////////////////////////////////////////////////////// frame3 as: gotoAndPlay(2); //这个难啊,要仔细讲一讲,呵呵
////////////////////////////////////////////////////////////////////////////// 第二中画线方法: _root.createEmptyMovieClip("shape_mc", 1); shape_mc.lineStyle(1, 0x000000, 100); lines = new Array(); lines.cur = {x:0, y:0}; // 起始点(当前点)坐标 lines.i = -1; // 当前所画边的序号 // 每条边的终点坐标及步长 lines[0] = {x:300, y:0, dx:5}; lines[1] = {x:300, y:300, dy:5}; lines[2] = {x:0, y:300, dx:-5}; lines[3] = {x:0, y:0, dy:-5}; lines[4] = {x:100, y:-100, dx:5, dy:-5}; lines[5] = {x:400, y:-100, dx:5}; lines[6] = {x:300, y:0, dx:-5, dy:5}; lines[7] = {x:400, y:-100, dx:5, dy:-5}; lines[8] = {x:400, y:200, dy:5}; lines[9] = {x:300, y:300, dx:-5, dy:5}; shape_mc.onEnterFrame = function() { // 如果是第一点就先定位 with (lines) { if (i < 0) { this.moveTo(cur.x, cur.y); i = 0; // 如果还有边则画边 } else if (i < length) { cur.x += lines[ i].dx; cur.y += lines[ i].dy; // 判断是否过界,过界则边号加1 if (lines[ i].dx > 0 && cur.x >= lines[ i].x || lines[ i].dx < 0 && cur.x <= lines[ i].x || lines[ i].dy > 0 && cur.y >= lines[ i].y || lines[ i].dy < 0 && cur.y <= lines[ i].y) { cur.x = lines[ i].x; cur.y = lines[ i].y; i++; } [1] [2] [3] [4] 下一页 |