我想知道是否有可能从另一个对象内的对象引用创建一个事件委托,这就是场景。
我在这两个圆圈之间有两个圆圈和一条直线,每当任何一个圆圈改变自己的位置时,它也必须更新直线的位置,此时我已经创建了一个自定义直线引用两个圆作为属性(原点,目标) 但并没有以这种方式约束事件。
我尝试做的事情就像>
this.origin.on('dragstart dragmove',function(){
console.log("origin mouse move");
this.setPoints([origin.getX(),origin.getY(), target.getX(), target.getY()]);
this.draw();
});
这是fiddle
答案 0 :(得分:0)
buildArrow: function(origin,target){
var arrowInstance = new Shape.Arrow({
points: [origin.getX(),origin.getY(), target.getX(), target.getY()],
stroke: '#629DD1',
tension: 1
});
arrowInstance.origin=origin;
origin.line = arrowInstance;
arrowInstance.target=target;
target.line = arrowInstance;
return arrowInstance;
},
updatePosition : function() {
this.points([this.origin.getX(),this.origin.getY(), this.target.getX(), this.target.getY()]);
},
然后:
this.on('dragstart dragmove',function(){
var centerpoint = (this.cellSize/2)
this.setX(((Math.round(this.getX() / centerpoint) * centerpoint)));
this.setY(((Math.round(this.getY() / centerpoint) * centerpoint)));
this.line.updatePosition();
});