2014-10-12 3 views
0

В примере в jsbin, если вы нажмете кнопку один раз, прямоугольник будет масштабироваться, но во второй раз он не масштабируется.Второй вызов scale() не масштабируется

Я думал, что если вы продолжаете называть шкалу (0.75), то она будет масштабировать прямоугольную 75% от ее текущего размера, поэтому она в основном будет становиться все меньше и меньше.

Я уверен, что мне не хватает чего-то очень простого, так как мой пример очень прост, но я прочитал столько документации, и я до сих пор не могу понять это. Есть идеи?

http://jsbin.com/zajehudurido

ответ

1

Это потому, что прямоугольник масштабируется от исходного размера, вы установили, как только вы его создали (350х350). Если вы хотите масштабировать его с фактического размера каждый раз, вам нужно пересчитать аргумент методу rect.scale. Например. сохраните предыдущее значение и умножьте его на 0,75 каждый раз:

var ratio = 1; 
function resize() { 
    ratio = ratio * 0.75; 
    rect.scale(ratio); 
    canvas.renderAll(); 
} 
Смежные вопросы