2013-04-15 2 views
0

В настоящее время всякий раз, когда я устанавливаю текст объекта fabric.Text динамически, используя набор ('text', 'some random text '), ширина, по-видимому, возрастает двунаправленно, т.е. как с левой, так и с правой стороны. Есть ли способ сделать это расти только с левой или с правой стороны. Я достиг этого, явно вычислив top_left_x, top_left_y, top_right_x, top_right_y и используя для этого одну арифметическую логику.Сделать текст выраженным однонаправленно по вызову set ('text', 'some value')

Но что такое внутреннее свойство fabricJS (или что-то подобное), посредством которого это может быть достигнуто.

Для бывших: В KitchenSink демо, если добавить новый объект Text и изменить текст в текстовой области ниже правой, вы увидите, что текст растет с правой стороны, а его левая сторона остается неизменной. Это именно то, чего я хочу достичь.

Любые предложения кто-нибудь?

ответ

2

Это произошло потому, что исходная точка по умолчанию является центром объекта. Поэтому вам нужно установить «originX» в «left». Как вы можете видеть в Kintchensink source file:

 

document.getElementById('add-text').onclick = function() { 
    var textSample = new fabric.Text(text.slice(0, getRandomInt(0, text.length)), { 
    left: getRandomInt(350, 400), 
    top: getRandomInt(350, 400), 
    fontFamily: 'helvetica', 
    angle: getRandomInt(-10, 10), 
    fill: '#' + getRandomColor(), 
    scaleX: 0.5, 
    scaleY: 0.5, 
    fontWeight: '', 
    originX: 'left', 
    hasRotatingPoint: true 
    }); 
    canvas.add(textSample); 
    updateComplexity(); 
}; 
 
+0

Блестящий! Это именно то, что я искал. Спасибо. :) – Siddhant

Смежные вопросы