endMove = function(dx,dy){
    var newX = this.oldx+dx;
    var newY = this.oldy+dy;
    var pathArr = modeler.getArr(this.startPoint.attr("cx"),this.startPoint.attr("cy"),newX,newY);
    this.sonLineEnd.attr({"path":pathArr});
    this.attr({"cx":newX,"cy":newY});
}
这是自己写的一个移动圆点时,而另一个圆点不动,箭头在两端的坐标时刻绘图,这个是正确的,但是改为:
modeler.endMoveArg = function(newX,newY){
var pathArr = modeler.getArr(this.startPoint.attr("cx"),this.startPoint.attr("cy"),newX,newY);
this.path1.attr({"path":pathArr});
this.endPoint.attr({"cx":newX,"cy":newY});
};
在endMove方法中:
endMove = function(dx,dy){
var newX = this.oldx+dx;
var newY = this.oldy+dy;
modeler.endMoveArg.call(this.myParent,newX,newY);
}这样写就达不到之前的效果了,求高手解决。注:有用到raphael 

解决方案 »

  1.   

    这里this.myParent 是什么,
    this.path1 又是什么。 跟你原先成功的函数,真心看不出来有什么关系,
      

  2.   

    这个箭头有三部分组成,path1,startPoint,endPoint。path1是生成的箭头,startPoint、endPoint分别是箭头两端的小圆,这段代码是移动endPoint时,startPoint不动,path1,即箭头随着endPoint移动,this.myPrent是在初始化时endPoint对整个对象(在此定义为connector对象,包含path1,startPoint,endpoint)的引用,上面的两段代码在画一个箭头时都是好的,但是当画多个箭头时,下面的代码就达不到之前的效果了。