2013-10-24 68 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