频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发工具应用教程 -> Flash教程 -> 利用FlashMX的AS画线集萃

利用FlashMX的AS画线集萃

作者:未知  来源:转载  发布时间:2005-8-20 20:26:41  发布人:acx

减小字体 增大字体

使用方法:把代码拷到帧中就可看到效果

效果:可按住鼠标任意画线,可作简单的涂鸭工具
点击浏览该文件
http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=400 height=300>/Upload/2005-07/2005721365810.swf

代码:
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;
};
}

用鼠标任意画直线
效果:类似flash中的直线工具
点击浏览该文件
代码:

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);
};

用鼠标任意画矩形

效果:类似flash中的矩形工具
代码:

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;
_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);
};

用鼠标任意画圆、椭圆

效果:类似flash中的工具
代码:

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);

将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
下一篇文章:变色花环
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· ActionScript语法详解<5..
· 用Photoshop实现霓虹效果..
· 牢记!SQL Server数据库..
· ADO初学者教程:ADO 显示..
· Photoshop应用实例 绘制..
· 像素字体使用技巧
· 天气小偷代码怎么写
· Web服务器IIS6的PHP最佳..
· FWMX系列:数据驱动图形..
· 巧用CSS滤镜做图案文字
· VB.net 编码规范
· 008.net/解析/动态域名/..
· 易趣CEO称Google电商前途..
· XML简明教程第2课: 处理..
· 轻松几步帮你删除Access..
· ASP技术在论坛中的运用(..
相关文章
· 利用FLASH 8绘图功能..
· 利用Flash制作缤纷雪花
· 利用Flash MX模板制作..
· 利用Flash MX模板制作..
· 利用Flash MX模板制作..
· 利用Flash MX模板制作..
· 利用Flash MX模板制作..
· 用JavaScript实现利用FLASH..
· 用JavaScript实现利用..
· 用JavaScript实现利用..
· 用JavaScript实现利用..
· 用JavaScript实现利用..
· 用JavaScript实现利用..
· 用JavaScript实现利用..
· 利用Flash制作一个可..
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号