angular - Kako spriječiti skaliranje teksta prilikom promjene veličine tekstualnog okvira s fabricjs
Nov sam u FabricJs-u i moja zabrinutost se odnosi na promjenu veličine tekstualnog okvira - imam sljedeće rješenje koje omogućuje promjenu veličine tekstualnog okvira okomito i vodoravno, ali ne istovremeno. Pokušavao sam pronaći rješenje koje čini oboje u isto vrijeme bez promjene veličine teksta. Možete li mi, molim vas, pomoći pronaći rješenje?
Evo poveznice na moj primjer na jsfiddle: http://jsfiddle.net/vstefani/s7yfu93w/27/
var canvas = new fabric.Canvas('canvas');
canvas.setWidth(500);
canvas.setHeight(500);
var myText = new fabric.Textbox("Some text", {
width: 100,
height: 100,
top: 100,
left: 100,
fontSize: 20,
textAlign: 'center',
fontFamily: 'Arial',
padding: 2,
});
canvas.add(myText);
let lastHeight: number;
const updateTextSize = () => {
const controlPoint = myText.__corner;
if (controlPoint && controlPoint !== 'mr' && controlPoint !== 'ml') {
lastHeight = myText.height * myText.scaleY;
}
myText.set({
height: lastHeight || myText.height,
scaleY: 1,
});
};
myText.on('scaling', updateTextSize);
myText.on('editing:entered', updateTextSize);
myText.on('text:changed', updateTextSize);
Odgovor #1
Čini se da kontrolne točke 'mr' i 'ml' nisu pokrenute događajem 'skaliranje', nego događajem 'promjena veličine'.
Rješenje (koje meni funkcionira) je dodati :
textbox.on('resizing', updateTextSize);
