Anonymous
Ткань: предотвратить переворот текста в группе
Сообщение
Anonymous » 26 май 2025, 11:38
Я пытаюсь масштабировать группу без текста внутри нее. Код, кажется, работает, но когда я перетаскиваю, чтобы масштабировать группу, текст продолжает переворачивать туда -сюда. Это немного хлопот. Это мой код для справки: < /p>
Код: Выделить всё
const canvas = new fabric.Canvas('c')
const points = [{ x: 3, y: 4, }, { x: 16, y: 3, }, { x: 30, y: 5, }, { x: 25, y: 55, }, { x: 19, y: 44, }, { x: 15, y: 30, }, { x: 15, y: 55, }, { x: 9, y: 55, }, { x: 6, y: 53, }, { x: -2, y: 55, }, { x: -4, y: 40, }, { x: 0, y: 20, },
]
const poly = new fabric.Polygon(points, {
left: 200,
top: 50,
fill: 'yellow',
strokeWidth: 1,
stroke: 'grey',
scaleX: 5,
scaleY: 5,
objectCaching: false,
transparentCorners: false,
cornerColor: 'blue',
})
const text = new fabric.Text('hello text', {
left: 200,
top: 200,
fontSize: 20,
fill: 'red',
originX: 'center',
originY: 'center',
hasRotatingPoint: false,
lockScalingFlip: true
})
const group = new fabric.Group([poly, text], {
originX: 'center',
originY: 'center',
hasRotatingPoint: false
})
canvas.add(group)
canvas.on('object:scaling', function (e) {
const obj = e.target
if (obj === group) {
let flipX = obj.flipX
let flipY = obj.flipY
obj.getObjects()[1].set({
scaleX: flipX ? -1 : 1,
scaleY: flipY ? -1 : 1,
})
}
})< /code>
Подробнее здесь:
https://stackoverflow.com/questions/796 ... -the-group
1748248715
Anonymous
Я пытаюсь масштабировать группу без текста внутри нее. Код, кажется, работает, но когда я перетаскиваю, чтобы масштабировать группу, текст продолжает переворачивать туда -сюда. Это немного хлопот. Это мой код для справки: < /p> [code]const canvas = new fabric.Canvas('c') const points = [{ x: 3, y: 4, }, { x: 16, y: 3, }, { x: 30, y: 5, }, { x: 25, y: 55, }, { x: 19, y: 44, }, { x: 15, y: 30, }, { x: 15, y: 55, }, { x: 9, y: 55, }, { x: 6, y: 53, }, { x: -2, y: 55, }, { x: -4, y: 40, }, { x: 0, y: 20, }, ] const poly = new fabric.Polygon(points, { left: 200, top: 50, fill: 'yellow', strokeWidth: 1, stroke: 'grey', scaleX: 5, scaleY: 5, objectCaching: false, transparentCorners: false, cornerColor: 'blue', }) const text = new fabric.Text('hello text', { left: 200, top: 200, fontSize: 20, fill: 'red', originX: 'center', originY: 'center', hasRotatingPoint: false, lockScalingFlip: true }) const group = new fabric.Group([poly, text], { originX: 'center', originY: 'center', hasRotatingPoint: false }) canvas.add(group) canvas.on('object:scaling', function (e) { const obj = e.target if (obj === group) { let flipX = obj.flipX let flipY = obj.flipY obj.getObjects()[1].set({ scaleX: flipX ? -1 : 1, scaleY: flipY ? -1 : 1, }) } })< /code> [/code] Подробнее здесь: [url]https://stackoverflow.com/questions/79638567/fabricprevent-text-flipping-in-the-group[/url]