1

I have a problem ( i believe it is similar to the one calcOffset is fixing) with positions of objects.

I zoom in-out with mouse scroll wheel. After zooming, shapes are displayed at new positions but cannot be handled at these position. Only at their pre-zoom positions.

jsfiddle example

Here is my code for zooming:

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();
}
4

1 回答 1

0

setCoords 是一个函数,你需要这样调用它:

objects[i].setCoords();

objects[i].setCoords;绝对什么都不做。

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

于 2013-10-26T19:53:34.577 回答