0

我正在尝试使用端口实现我自己的形状类。但是我希望这些形状生成的链接是平滑的。现在,我知道制作流畅链接的唯一方法是

link.set('smooth', true).

但是我如何不通过代码做到这一点?我如何通过拖动获得平滑的链接?

我扩展了 Link 类 ( MyLink),但是当我在端口上拖动时,如何告诉 JointJS 使用哪个 Link 类?

joint.shapes.myclass.Link = joint.dia.Link.extend({

    defaults: {
        type: 'myclass.Link',
        attrs: { '.connection' : { 'stroke-width' :  5 }},
        smooth:true
    }
});
4

1 回答 1

4

通过 UI 通过拖动端口创建的链接在defaultLink论文的属性中定义。它可以是一个对象,在这种情况下它是一个链接模型,也可以是一个返回链接模型的函数:

var paper = new joint.dia.Paper({
    defaultLink: new joint.shapes.myclass.Link,
    ...
})

或者:

var paper = new joint.dia.Paper({
   defaultLink: function(elementView, magnet) {
       if (aCondition) return new joint.dia.Link;
       else return joint.shapes.myclass.Link;
   }
})

该功能使您可以灵活地根据下面的元素或正在拖动的磁铁(端口的 SVG 元素)动态创建不同的链接。

于 2014-07-17T09:34:19.507 回答