|
首页 | 名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
使用方式:把代码拷到帧中就可看到效果 效果:可按住鼠标任意画线,可作简朴的涂鸭工具 代码: createEmptyMovieClip("xian",1);
with (xian) { _root.onMouseMove = function() { if (draw) { _root.lineStyle(0, 0x000000, 100); _root.lineTo(_root._xmouse, _root._ymouse); } }; _root.onMouseDown = function() { draw = true; _root.moveTo(_root._xmouse, _root._ymouse); }; _root.onMouseUp = function() { draw = false; }; } 用鼠标任意画直线
代码: createEmptyMovieClip("line", n);
with (line) { lineStyle(1, 0x000000, 100); moveTo(0, 0); lineTo(100, 100); line._visible = 0; } _root.onMouseDown = function() { qidian_x = _root._xmouse; qidian_y = _root._ymouse; with (line) { _x = qidian_x; _y = qidian_y; _xscale = 0; _yscale = 0; _visible = 1; } }; _root.onMouseMove = function() { endX = _root._xmouse; endY = _root._ymouse; if (_root.line != "_root.line" && key.isdown(16)) { if (Math.abs(endX-qidian_x)>Math.abs(endY-qidian_y)) { setProperty(_root.line, _xscale, endX-qidian_x); setProperty(_root.line, _yscale, endX-qidian_x); } else { setProperty(_root.line, _xscale, endY-qidian_y); setProperty(_root.line, _yscale, endY-qidian_y); } } else { setProperty(_root.line, _xscale, endX-qidian_x); setProperty(_root.line, _yscale, endY-qidian_y); } }; _root.onMouseUp = function() { if (_root._xmouse-qidian_x != 0) { i++; Objectx = "Copy" add i; duplicateMovieClip(_root.line, Objectx, i); setProperty(Objectx, _x, qidian_x); setProperty(Objectx, _y, qidian_y); _root.i = i; } setProperty(_root.line, _visible, 0); }; 用鼠标任意画矩形 createEmptyMovieClip("line", n);
with (line) { lineStyle(0.1, 0x000000, 100); moveTo(0, 0); lineTo(100, 0); lineTo(100, 100); lineTo(0, 100); lineTo(0,0); line._visible = 0; } _root.onMouseDown = function() { qidian_x = _root._xmouse; qidian_y = _root._ymouse; with (line) { _x = qidian_x; _y = qidian_y; _xscale = 0; _yscale = 0; _visibl e = 1; } }; _root.onMouseMove = function() { endX = _root._xmouse; endY = _root._ymouse; if (_root.line != "_root.line" && key.isdown(16)) { if (Math.abs(endX-qidian_x)>Math.abs(endY-qidian_y)) { setProperty(_root.line, _xscale, endX-qidian_x); setProperty(_root.line, _yscale, endX-qidian_x); } else { setProperty(_root.line, _xscale, endY-qidian_y); setProperty(_root.line, _yscale, endY-qidian_y); } } else { setProperty(_root.line, _xscale, endX-qidian_x); setProperty(_root.line, _yscale, endY-qidian_y); } }; _root.onMouseUp = function() { if (_root._xmouse-qidian_x != 0) { i++; Objectx = "Copy" add i; duplicateMovieClip(_root.line, Objectx, i); setProperty(Objectx, _x, qidian_x); setProperty(Objectx, _y, qidian_y); _root.i = i; } setProperty(_root.line, _visible, 0); }; 用鼠标任意画圆、椭圆 createEmptyMovieClip("line", n);
with (line) { for (n=1; n<400; n++) { a = 50*Math.cos(n*Math.PI/180); b = 50*Math.sin(n*Math.PI/180); c = 50*Math.cos((n+1)*Math.PI/180); d = 50*Math.sin((n+1)*Math.PI/180); lineStyle(0.01, 0x000000, 50); moveTo(a+50, b+50); lineTo(c+50, d+50); } line._visible = 0; } _root.onMouseDown = function() { qidian_x = _root._xmouse; qidian_y = _root._ymouse; with (line) { _x = qidian_x; _y = qidian_y; _xscale = 0; _yscale = 0; _visible = 1; } }; _root.onMouseMove = function() { endX = _root._xmouse; endY = _root._ymouse; if (_root.line != "_root.line" && key.isdown(16)) { if (Math.abs(endX-qidian_x)>Math.abs(endY-qidian_y)) { setProperty(_root.line, _xscale, endX-qidian_x); setProperty(_root.line, _yscale, endX-qidian_x); } else { setProperty(_root.line, _xscale, endY-qidian_y); setProperty(_root.line, _yscale, endY-qidian_y); } } else { setProperty(_root.line, _xscale, endX-qidian_x); setProperty(_root.line, _yscale, endY-qidian_y); } }; _root.onMouseUp = function() { if (_root._xmouse-qidian_x != 0) { i++; Objectx = "Copy" add i; duplicateMovieClip(_root.line, Objectx, i); setProperty(Objectx, _x, qidian_x); setProperty(Objectx, _y, qidian_y); _root.i = i; } setProperty(_root.line, _visible, 0); }; 两定点画虚线 代码:MovieClip.prototype.dashTo = function(startPoint, destPoint, dashLength, spaceLength) { var x = destPoint.x-startPoint.x; var y = destPoint.y-startPoint.y; var hyp = Math.sqrt((x)*(x)+(y)*(y)); var units = hyp/(dashLength+spaceLength); var dashSpaceRatio = dashLength/(dashLength+spaceLength); var dashX = (x/units)*dashSpaceRatio; var spaceX = (x/units)-dashX; var dashY = (y/units)*dashSpaceRatio; var spaceY = (y/units)-dashY; this.moveTo(startPoint.x, startPoint.y); while (hyp>0) { startPoint.x += dashX; startPoint.y += dashY; hyp -= dashLength; if (hyp<0) { startPoint.x = destPoint.x; startPoint.y = destPoint.y; } this.lineTo(startPoint.x, startPoint.y); startPoint.x += spaceX; startPoint.y += spaceY; this.moveTo(startPoint.x, startPoint.y); hyp -= spaceLength; } this.moveTo(destPoint.x, destPoint.y); }; createEmptyMovieClip("DrawingSpace", 1); with (DrawingSpace) { lineStyle(0, 0x000000, 100); dashTo({x:300, y:0}, {x:0, y:400}, 3, 10); } 从一点到另一点画虚线 代码: function DrawDottedLine(targetMC, linewidth, fromX, fromY, toX, toY) { // targetMC: 目标MovieClip德InstanceName; // linewidth: 线宽; // fromX, fromY: 从(fromX, fromY)处开始画; // toX, toY: 画到(toX, toY)处; var x, y; eval(targetMC).lineStyle(lineWidth, 0x000000, 100); // 线的颜色是黑色(0x000000) eval(targetMC).moveTo(fromX, fromY); x = fromX; y = fromY; while (xx = x+4/(Math.sqrt((toY-fromY)*(toY-fromY)+(toX-fromX)*(toX-fromX)))*(toX-fromX); y = y+4/(Math.sqrt((toY-fromY)*(toY-fromY)+(toX-fromX)*(toX-fromX)))*(toY-fromY); eval(targetMC).lineTo(x, y); x = x+4/(Math.sqrt((toY-fromY)*(toY-fromY)+(toX-fromX)*(toX-fromX)))*(toX-fromX); y = y+4/(Math.sqrt((toY-fromY)*(toY-fromY)+(toX-fromX)*(toX-fromX)))*(toY-fromY); eval(targetMC).moveTo(x, y); } } createEmptyMovieClip("obj",1);//建一空影片 DrawDottedLine("_root.obj", 1, 10, 10, 200, 300);//调用函数 从场景的左上角到鼠标画虚线 x = 0;
y = 0;//场景左上角的坐标 l = 0; mx = _root._xmouse; my = _root._ymouse;//鼠标的坐标 ml = Math.sqrt(mx*mx+my*my);//三角形的斜边长 _root.moveto(0, 0);//画线的起点为场景左上角的坐标 _root.linestyle(0.1, 0x000000, 100); // 下面用三角函数求出每一段虚线的端点坐标,然后用循环重复画一条短线和空格。直到线的终点位置。 while (ll += 5; // 短线的长 x = l*mx/ml; y = l*my/ml; _root.lineto(x, y); // 将绘图点移动到相称于 短线长的,且与短线在同一直线的位置。即一个空格 l += 5; x = l*mx/ml; y = l*my/ml; _root.moveto(x, y); }
function Shape() {
this.points = []; this.lines = false; this.filled = false; this.lineStyle = null; this.t = eval(_target); } Shape.prototype.addPoint = function(x, y) { this.points[this.points.length] = {x:x, y:y}; }; Shape.prototype.removePoint = function() { this.points.pop(); }; Shape.prototype.draw = function(w, c, a) { if (this.points.length>1) { this.lineStyle = {w:w, c:c, a:a}; this.t.lineStyle(w, c, a); var i = 0; var l = this.points.length; while (ithis.t.lineTo(this.points[i].x, this.points[i].y); ++i; } this.lines = true; } }; Shape.prototype.fill = function(c, a) { if (this.points.length>1) { if (this.lines) { this.clear(); this.t.lineStyle(this.lineStyle.w, this.lineStyle.c, this.lineStyle.a); } else { this.t.lineStyle(0, 0xFFFFFF, 0); if (this.filled) { this.clear(); } } this.t.beginFill(c, a); var i = 0; var l = this.points.length; while (ithis.t.lineTo(this.points[i].x, this.points[i].y); ++i; } this.t.endFill(); this.filled = true; } }; Shape.prototype.getX = function() { if (this.points.length) { return this.points[this.points.length-1].x; } }; Shape.prototype.getY = function() { if (this.points.length) { return this.points[this.points.length-1].y; } }; g = new Shape(); g.addPoint(0, 100); g.addPoint(100, 100); g.addPoint(100, 0); g.addPoint(0, 0); g.fill(0x339900, 100); g.draw(5, 0x000000, 100); 返回类别: Flash教程 上一教程: FlashMX 视频教程(35)-变形动画 下一教程: Flash5 ActionScript入门学习-Action Script中的变量 您可以阅读与"利用FlashMX的AS画线集萃"相关的教程: · FlashMX 视频教程(19)-手形工具的使用 · FlashMX 视频教程(35)-变形动画 · FlashMX 视频教程(30)-实例9绘制窗户 · FlashMX 视频教程(40)-色彩动画 · FlashMX 视频教程(32)-图层的操作 |
快精灵印艺坊 版权所有 | 首页会员中心在线印刷在线编辑付款方式索取样品设计指南连锁门店 |