angular - Kuinka estää tekstin skaalaus, kun tekstiruutua koonmuutetaan fabricjs:llä
Olen uusi FabricJs:ssä ja huoleni koskee tekstiruudun koon muuttamista - minulla on seuraava ratkaisu, joka mahdollistaa tekstiruudun koon muuttamisen pystysuunnassa ja vaakasuunnassa, mutta ei samanaikaisesti. Olen yrittänyt löytää ratkaisua, joka tekee molemmat samanaikaisesti ilman, että tekstiä muutetaan. Voitko auttaa minua löytämään ratkaisun?
Tässä on linkki jsfiddle-esimerkkiini: 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);
Vastaus #1
Näyttää siltä, että ohjauspisteitä 'mr' ja 'ml' ei laukaise 'skaalaus'-tapahtuma vaan 'koonmuutos'.
Ratkaisu (joka toimii minulle) on lisätä :
textbox.on('resizing', updateTextSize);
