2013-10-24 93 views
1

我有一個問題(我相信它類似於calcOffset正在修復)與對象的位置。放大fabricjs,物體位置

我用鼠標滾輪放大。縮放後,形狀將顯示在新的位置,但無法在這些位置處理。只在他們的預縮放位置。

jsfiddle example

這裏是我的代碼變焦:

function displaywheel(e){ 
    var SCALE_FACTOR = 1.1; 
    var evt=window.event || e 
    var delta=evt.detail? evt.detail*(-120) : evt.wheelDelta 
    var objects = canvas.getObjects(); 
    var dd = 1; 
    if (delta == 120) dd=SCALE_FACTOR; 
    if (delta == -120) dd=1/SCALE_FACTOR; 
    globscale = globscale * dd; 
    for (var i in objects) { 
     objects[i].setCoords; 
     objects[i].scaleX = globscale; 
     objects[i].scaleY = globscale; 
     objects[i].left = objects[i].left * dd; 
     objects[i].top = objects[i].top * dd; 
     objects[i].setCoords; 
    } 
    canvas.renderAll(); 
    canvas.calcOffset(); 
} 

回答

0

setCoordsis a function,你需要調用它像這樣:

objects[i].setCoords();

objects[i].setCoords;絕對沒有。

http://jsfiddle.net/w5NjC/1/

+1

最初的小提琴不適用於Mozilla。在此固定 - http://jsfiddle.net/lakshaydulani/L8Lzc/ 積分原始碼。 – Lakshay

+0

,並且他不需要在循環中兩次調用setCoords。最後一個就足夠了 – AndreaBogazzi