paperjs PointText щелкните и перетащите маркеры для масштабирования и изменения размера

В paperjs я не могу найти способ изменить размер текстового элемента pointText. Я хотел бы, чтобы мои пользователи могли щелкнуть, чтобы выбрать текстовый элемент, а затем, когда появятся ручки, они смогут перетащить, чтобы изменить размер текста (сохраняя соотношение сторон). Нигде в документах это ясно или выполнимо. У меня такое чувство, что я что-то упускаю или это невозможно.


person Justin    schedule 25.11.2013    source источник


Ответы (1)


Вы можете сделать hitTest только на границах PointText элементов.

var text = new PointText({
    point: [50, 50],
    content: 'The contents of the point text',
    fillColor: 'black',
    fontSize: 25,
    selected: true
});

function onMouseDown(event){
    text.res = project.hitTest(event.point, {
            type: 'PointText',
            bounds:true
        }
    );
    console.log(text.res.name);
}

Затем проанализируйте результат, чтобы убедиться, что это угол, и выполните масштабирование с центром в противоположном углу на следующем onMouseUp.

person Alex Blackwood    schedule 25.11.2013
comment
У меня проблемы, результаты, которые я получаю, - это связанные имена: Можете ли вы показать мне, как я могу это сделать с помощью функции mouseUp? - person Justin; 26.11.2013
comment
В приведенном выше случае text.res должен быть полным объектом hitResult, если вы нажмете на элемент управления границами. Если нет, он вернет ноль. Все, что вам нужно, это название угла, чтобы переключаться между возможностями. Затем вы можете масштабировать объект на event.delta относительно размера текста. - person Alex Blackwood; 26.11.2013
comment
Вот как можно обнаружить текстовый элемент при нажатии, это не имеет ничего общего с масштабированием текста. - person kamp; 06.09.2018