2013-04-30 63 views
1

我正在使用Raphael自由變換插件來啓用縮放,拖拽和旋轉。 在這個特定的場景中,我想要調整一個手柄來調整大小,另一個手柄用於旋轉,因此縮放選項僅在軸x上設置。我想通過在函數回調中對其進行修正來補償y軸上的縮放,以避免「圖像」失真。 我想讓用戶使用一個手柄重新設置raphael的大小,並使用另一個手柄旋轉raphael。另外,我想堅持縮放所導致的所有轉換,以便在用戶嘗試拖動對象時不會丟失。使用Raphael自由變換插件的糾正縮放

var ft = paper.freeTransform(tmp, { scale: ['axisX'], rotate: ['axisY'] }, cbFreeTransform); 

    function cbFreeTransform(s, e) { 
     if (e.toString() == 'scale end') { 

      for (var i = 0, l = tmp.length; i < l; i++) { 
       var itm = tmp[i]; 
       itm.scale(1, s.attrs.scale.x); 
      } 

     } 
    } 

這裏是提琴:jsFiddle

任何幫助表示讚賞。

回答

2

在執行以下操作中找到了解決方案: 在'Scale End'事件中,我已將x比例因子分配給y比例因子和無需調用的變換應用方法。這似乎工作。 var ft = paper.freeTransform(tmp,{scale:['axisX'],rotate:['axisY']},cbFreeTransform);}};

function cbFreeTransform(s, e) { 
    if (e.toString() == 'scale end') {  
     ft.attrs.scale.y = s.attrs.scale.x; 
     ft.apply(); 
    } 
} 
+0

你可以做同樣的bbox自由轉換嗎? – Ved 2014-11-29 12:46:51