Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript KineticJS中的事件委托_Javascript_Kineticjs - Fatal编程技术网

Javascript KineticJS中的事件委托

Javascript KineticJS中的事件委托,javascript,kineticjs,Javascript,Kineticjs,我想知道是否可能从另一个对象内的对象引用创建事件委派,这就是场景 我在这两个圆之间有两个圆和一条线,每次任何圆改变自己的位置时,它也必须更新线的位置,此时我已经创建了一条自定义线,它将引用这两个圆作为属性(原点、目标) 但是没有以这种方式约束事件 我尝试做的是类似于> this.origin.on('dragstart dragmove',function(){ console.log("origin mouse move"); this.setPoints([origin.ge

我想知道是否可能从另一个对象内的对象引用创建事件委派,这就是场景

我在这两个圆之间有两个圆和一条线,每次任何圆改变自己的位置时,它也必须更新线的位置,此时我已经创建了一条自定义线,它将引用这两个圆作为属性(原点、目标) 但是没有以这种方式约束事件

我尝试做的是类似于>

this.origin.on('dragstart dragmove',function(){
    console.log("origin mouse move");
    this.setPoints([origin.getX(),origin.getY(), target.getX(), target.getY()]);
    this.draw();
});
这是

然后:


演示:

这对于了解如何使用kinectJs非常有用,我只想知道在每个对象引用上使用line属性的目的是什么,谢谢!
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();
});