请教:flash8中的函数问题
小弟在制作电子地图,下面的代码分别是实现移动、复位、测距功能的,但是都会检测到错误,小弟学浅,恳请各位大侠给予指点,帮忙修正一下代码。
1、实现移动功能的代码
on (release) { //当鼠标释放时执行以下动作
move(); //调用move()函数
}
function move() { //定义move()函数
map_mc.onMouseDown = function () { //当鼠标左键按下时
startDrag(map_mc); //开始拖动地图map_mc
}
map_mc.onMouseUp = function () { //当鼠标左键释放时
stopDrag(); //停止拖动地图map_mc
}
} //结束move()函数的定义
2、实现复位功能的代码
on (release) { //当鼠标释放时执行以下动作
map_mc._xscale = 100; //将地图map_mc的X轴缩放比率还原至原始大小
map_mc._yscale = 100; //将地图map_mc的Y轴缩放比率还原至原始大小
map_mc._x = 200; //将地图map_mc的注册点X坐标还原至中心点
map_mc._y = 150; //将地图map_mc的注册点Y坐标还原至中心点
}
3、实现测距功能的代码
on (release) { //当鼠标释放时执行以下动作
measure (); //调用measure ()测距函数
}
function measure (){ //定义measure ()函数
this.createEmptyMovieClip("canvas_mc", this.getNextHighestDepth());
//创建名为“canvas_mc”的影片剪辑
var mouseListener:Object = new Object();//建立一个mouseListener侦听器对象
mouseListener.onMouseDown = function() { //当鼠标左键按下时
this.isDrawing = true; //开始画线
this.orig_x = _xmouse; //记录此时的鼠标指针的X坐标
this.orig_y = _ymouse; //记录此时的鼠标指针的Y坐标
this.target_mc = canvas_mc.createEmptyMovieClip("", canvas_mc.getNextHighestDepth());
}
mouseListener.onMouseMove = function() { //当鼠标移动时
if (this.isDrawing) { //当开始画线时
this.target_mc.clear(); //清除上一次所画的线条
this.target_mc.lineStyle(1, 0xFF0000, 100); //设定线条的式样
this.target_mc.moveTo(this.orig_x, this.orig_y); //设定所画线条的起点
this.target_mc.lineTo(_xmouse, _ymouse); //设定所画线条的终点
}
updateAfterEvent();
}
mouseListener.onMouseUp = function() { //当鼠标左键释放时
line_width=_xmouse-this.orig_x; //画线终点与原点X轴坐标的距离
line_height=_ymouse-this.orig_y; //画线终点与原点Y轴坐标的距离
this.isDrawing = false; //停止画线
var l:Number = Math.sqrt(Math.pow(line_width, 2)+Math.pow(line_height, 2))*2500/map_mc._xscale; //计算出线条的长度,并换算成实际长度
line_mc.createTextField("length"+nextDepth+"_txt",canvas_mc.getNextHighestDepth(),(this.orig_x+_xmouse)/2-10, this.orig_y+_ymouse)/2-20, 1, 1); //创建文本框,以显示所测量的长度结果
line_mc['length'+nextDepth+'_txt'].text = Math.round(l); //显示测量结果
}
};
Mouse.addListener(mouseListener);
}
麻烦各位大侠,上面的代码为什么不能在按钮上实现?