2014-07-17 62 views
0

我試圖通過端口實現我自己的形狀類。不過,我希望這些形狀生成的鏈接平滑。現在,我知道做順利鏈接的唯一方法是JointJs創建自定義形狀並指定其默認鏈接

link.set('smooth', true)

但我該怎麼做,而不是通過代碼?如何通過拖動獲得流暢的鏈接?

我擴展的鏈接類(MyLink),但我如何告訴JointJS當我拖動端口時使用哪個鏈接類?

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

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

在一個完全不相關的說明:什麼是joint.util.deepSupplement? – WindowsMaker

回答

4

通過拖動端口通過用戶界面創建的鏈接定義在紙張的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元素)被拖動而飛行。